我需要在Perl哈希中找到值的计数(即abc1),如果> 4运行在IF块内运行内部命令。我只需要弄清楚如何计算数值#的概念。
(我可以留下我尝试过的代码示例,但这会导致无法控制的笑声和混乱)
我正在使用Data::Dumper
,并使用以下格式在哈希值中存储键/值。
push @{$hash{$key}}, $val;
哈希打印给出:
$ print Dumper \%hash;
$VAR1 = {
'5555' => [
'abc1',
'abc1',
'abc1'
]
};
请告诉我如何计算。
提前致谢。
答案 0 :(得分:2)
那么,你想要计算那个特定的字符串,还是元素的数量?
my $count = @{$hash{$key}}; # get the size of the array (all elements)
my %num;
for my $val (@{$hash{$key}}) {
$num{$val}++; # count the individual keys
}
print "Number of 'abc1': $num{'abc1'}\n";
答案 1 :(得分:1)
散列中的值的数量与键的数量相同。但是,您所追求的是数组中元素的数量(从散列值引用)。要获得数组的大小,只需在标量上下文中使用它。对于数组引用,您必须首先取消引用它:
my $count = @{ $hash{$key} };