如何在Perl中找到哈希中的键数?

时间:2009-07-10 11:48:05

标签: perl hash

如何在散列中找到键的数量,例如对数组使用$#

5 个答案:

答案 0 :(得分:72)

scalar keys %hash

或只是

keys %hash

如果您已经处于标量上下文中,例如my $hash_count = keys %hashprint 'bighash' if keys %hash > 1000

顺便说一句,$#array找不到元素的数量,它找到最后一个索引。 scalar @array找到元素的数量。

答案 1 :(得分:2)

我们也可以这样使用

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

 0+(keys %r) 

答案 2 :(得分:0)

但不是在Perl 5.10之后:

use feature ":5.10";
my %p = ();
say $#%p;

# $# is no longer supported

更糟糕的是:

use feature ":5.10";
my %p = (a=>1, b=>2, c=>3);
say $#{%p};

# -1

答案 3 :(得分:0)

print scalar keys %hash;

$X = keys %hash;
print $X;

keys %hash返回列表上下文中键的值,进一步更改为标量上下文(当分配给标量变量时)。

答案 4 :(得分:-4)

这将以简单的方式和任何大小的哈希值工作。

打印标量键%hash;