Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
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?

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
    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?
[marto]: This won't take till Summer to complete I hope ;)
[Discipulus]: i hope too, vacuum cleaner permitting, 2-3 afternoon to build. Or is the 1:1 serie? ;=)
[Tanktalus]: Sure, no one is active for hours and hours in the cb, so I go to upgrade the db, and then someone is active. Sheesh :)
[Discipulus]: anyway poppins probably died with the last night cold. But is not normal to see them in dec. they must pop in April
NodeReaper eyes the thorns in the side
Discipulus : the party puller!
[Discipulus]: I was trying to solve this but i'm not. my regex-fu is stuck at primary school

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (6)
As of 2017-12-18 21:35 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    What programming language do you hate the most?




















    Results (498 votes). Check out past polls.

    Notices?