> Interestingly, A hash in a scalar context returns some fraction.
> 
> Like, this code
> 
> @array = ( 1 .. 100 );
> %hash = @array;
> print scalar %hash, "\n";
> 
> prints
> 
> 33/64
> 
> Can somebody help me understand what this 33/64 is?

perldoc perldata

...
If you evaluate a hash in scalar context, it returns false if the 
hash is empty. If there are any key/value pairs, it returns true; 
more precisely, the value returned is a string consisting of the 
number of used buckets and the number of allocated buckets, separated 
by a slash. This is pretty much useful only to find out whether 
Perl's internal hashing algorithm is performing poorly on your data 
set. For example, you stick 10,000 things in a hash, but evaluating 
%HASH in scalar context reveals "1/16" , which means only one out of 
sixteen buckets has been touched, and presumably contains all 10,000 
of your items. This isn't supposed to happen. 

Does this make it clearer?

Jenda
===== [EMAIL PROTECTED] === http://Jenda.Krynicky.cz =====
When it comes to wine, women and song, wizards are allowed 
to get drunk and croon as much as they like.
        -- Terry Pratchett in Sourcery


-- 
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/


Reply via email to