计数grep匹配?

时间:2014-09-12 14:41:17

标签: regex perl hash grep

如果我执行以下操作,则$c变为1,我希望它是2,作为计算grep次匹配数量的紧凑方式。

my %h = (
    "abc" => undef,
    "abcd" => undef,
    "abcde" => undef
);

my $c = 0;
$c++ if grep {/bcd/} keys %h;
print $c;

在这种情况下,计算grep次匹配数的正确方法是什么?

1 个答案:

答案 0 :(得分:12)

只需将计数器分配给grep,

my $c = grep {/bcd/} keys %h;

来自perldoc

  

在标量上下文中,返回表达式为真的次数。