http://qs1969.pair.com?node_id=525793


in reply to Hash to Scalar Assignment Oddity

This isn't odd. It's supposed to do that.

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.
-- man perldata

Replies are listed 'Best First'.
Re^2: Hash to Scalar Assignment Oddity
by revdiablo (Prior) on Jan 26, 2006 at 20:56 UTC
    This isn't odd. It's supposed to do that.

    Are you saying defined behavior is never odd?!? That's quite a bold statement, and one I'm certainly not prepared to make (especially in this case, where I do indeed find the defined behavior a bit odd, even if it's well documented and I already knew what it was). :-)

Re^2: Hash to Scalar Assignment Oddity
by dsb (Chaplain) on Jan 30, 2006 at 21:00 UTC
    Now what doc is that in?


    dsb
    This @ISA my( $cool ) %SIG
      I already told you. It's perldata.