in reply to Seeking explanation on assigning a hash to a scalar
From 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 happenIt is not useful to assign a hash to a scalar. It is useful to store a reference to a hash in a scalar though, e.g.
This seems like an odd question to ask - are you looking for perl trivia, or trying to solve a problem?my %hash = (foo => 1); my $ref = \%hash; print $ref->{foo};
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: Seeking explanation on assigning a hash to a scalar
by blazar (Canon) on May 15, 2007 at 18:48 UTC |
In Section
Seekers of Perl Wisdom