http://www.perlmonks.org?node_id=999112


in reply to if (defined %hash) deprecated

This is definetly one of those things that I aswell have wondered about. I've been forced to search the hash to see if any items where inside (or check it's buckets by assigning a scalar). Knowing that (%hash) acts like it should is a nice tidbit! thanks for the post.

Replies are listed 'Best First'.
Re^2: if (defined %hash) deprecated
by AnomalousMonk (Archbishop) on Oct 15, 2012 at 19:02 UTC
Re^2: if (defined %hash) deprecated
by Ralesk (Pilgrim) on Oct 16, 2012 at 08:12 UTC

    By assigning to a scalar or by checking truthiness, you’re forcing a scalar context, so it can be expected to behave the same – that is, return a falsy value (0) when empty and non-falsy when not (and all the bucket counts are non-falsy). Same goes for arrays which report number of elements when not wantarray.