On Jul 10, 12:10 pm, [EMAIL PROTECTED] (Gowtham) wrote: > 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?
Yes. Perl can. Fire up a command line window, and type: perldoc perldata Among other useful information, you will find: 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. Paul Lalli -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] http://learn.perl.org/