Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Seeking explanation on assigning a hash to a scalar

by imp (Priest)
on May 15, 2007 at 03:52 UTC ( #615451=note: print w/ replies, xml ) Need Help??


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 happen
It 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.
my %hash = (foo => 1); my $ref = \%hash; print $ref->{foo};
This seems like an odd question to ask - are you looking for perl trivia, or trying to solve a problem?


Comment on Re: Seeking explanation on assigning a hash to a scalar
Download Code
Re^2: Seeking explanation on assigning a hash to a scalar
by blazar (Canon) on May 15, 2007 at 18:48 UTC
    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.

    I wrote it before and I'm repeating it here, again without proper attribution (anyone here?) nor the certainty of quoting it really correctly: "the value of a hash in scalar context is of no use to a Perl programmer, only to a perl programmer."

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://615451]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others musing on the Monastery: (14)
As of 2014-07-24 18:18 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    My favorite superfluous repetitious redundant duplicative phrase is:









    Results (164 votes), past polls