Rob Dixon wrote:
> Ryan Perry wrote:
>>
>> my %hash=(test=>{});
>> print "true\n" if $hash{test};
>> # prints true
>>
>> How can I tell if it's empty?
>
> The hash you have created hash a single element with a key of 'test' and a
> value
> of a reference to an empty hash. The only values in Perl that are false are
> zero, the empty string, and undef. A hash reference is none of those and
> therefore is true.
>
> If you want to check whether that reference refers to a non-empty hash then
> you
> should write
>
> print "not empty" if keys %{$hash{test}};
Or, indeed, just
print "not empty" if %{$hash{test}};
Rob
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
http://learn.perl.org/