计算数组中特定值的出现次数

bry*_*son 0 perl count

我想计算数组中特定值的出现次数,数组如下.

my @array = (-1.001, -7.032, -5.013, 8.412, -1.500, 3.412)
Run Code Online (Sandbox Code Playgroud)

预期结果对于零计数值= 4

对于负5以下的值= 2

如何使用Perl,Any Idea获取它?

Сух*_*й27 6

您可以使用grep过滤元素,并在它返回通过过滤器的列表元素数时在标量上下文中使用它,

my $count1 = grep { $_ < 0  } @array;
my $count2 = grep { $_ < -5 } @array;
Run Code Online (Sandbox Code Playgroud)

另一种方法是使用foreach循环,

my $count1 = 0;
my $count2 = 0;
for (@array) {
  $count1++ if $_ < 0;
  $count2++ if $_ < -5;
}
Run Code Online (Sandbox Code Playgroud)