如何在散列中找到键的数量,例如对数组使用$#
?
答案 0 :(得分:72)
scalar keys %hash
或只是
keys %hash
如果您已经处于标量上下文中,例如my $hash_count = keys %hash
或print '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;