计数grep匹配?

Jas*_*nes 4 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;
Run Code Online (Sandbox Code Playgroud)

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

Сух*_*й27 13

只需将计数器分配给grep,

my $c = grep {/bcd/} keys %h;
Run Code Online (Sandbox Code Playgroud)

perldoc

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

  • @perlsufi它只计算一个匹配perl列表元素. (4认同)
  • @perlsufi:你自己尝试一下是微不足道的. (2认同)