标签: regex perl hash grep
如果我执行以下操作,则$c变为1,我希望它是2,作为计算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次匹配数的正确方法是什么?
答案 0 :(得分:12)
只需将计数器分配给grep,
my $c = grep {/bcd/} keys %h;
来自perldoc
perldoc
在标量上下文中,返回表达式为真的次数。