1

我需要在 Perl 哈希中找到值的计数(即 abc1),如果 > 4 运行,则在 IF 块中运行内部命令。我只需要弄清楚如何计算 # of values 的概念。

(我可以留下我尝试过的代码示例,但这只会导致无法控制的笑声和混乱)

我正在使用Data::Dumper,并利用以下格式将键/值存储在哈希中。

push @{$hash{$key}}, $val;

哈希打印给出:

$ print Dumper \%hash;

    $VAR1 = {
      '5555' => [
                   'abc1',
                   'abc1',
                   'abc1'
                 ]
    };

请让我知道如何获得计数。

提前致谢。

4

2 回答 2

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";
于 2013-06-11T10:13:59.267 回答
1

哈希值的数量与键的数量相同。但是,您所追求的是数组中的元素数(从哈希值引用)。要获取数组的大小,只需在标量上下文中使用它。对于数组引用,您必须先取消引用它:

my $count = @{ $hash{$key} };
于 2013-06-11T10:14:19.163 回答