How can I find the number of keys in a hash in Perl?

How do I find the number of keys in a hash, like using $# for arrays?


scalar keys %hash

or just

keys %hash

if you're already in a scalar context, e.g. my $hash_count = keys %hash  or  print 'bighash' if keys %hash > 1000.

Incidentally, $#array doesn't find the number of elements, it finds the last index. scalar @array finds the number of elements.


we can use like this too

my $keys = keys(%r) ;
print "keys = $keys" ;

 0+(keys %r)