我想在Perl中使用grep函数来查找数组中正则表达式匹配的数量。我知道grep应该采取一个列表作为其参数,但不幸的是,我试图访问的数据是以数组的形式。下面是我的问题的一个简化示例:如何在数组中使用Perl的grep函数?
using strict;
using warnings;
my @test = qw(AAA AAB AAC);
my @test2 = ["AAA", "AAB", "AAC"];
my @results = grep(m/AA./, @test);
my @results2 = grep(m/AA./, @test2);
print @results . "\n";
print @results2 . "\n";
第一次打印输出3,因为列表中的每个成员匹配。第二个打印输出0,我假设是因为grep不喜欢数组。有没有我应该使用的替代方案,或者是我的语法不正确?
这很有道理。我没有意识到,方括号创建了一个数组的引用,而不是只填写索引。 – 2015-03-02 23:42:50