PERL MCE :: Grep - 为什么在循环中动态传递时没有grep模式工作

时间:2015-02-12 09:33:58

标签: perl perl-mce

我使用MCE :: Grep模块来grep文件的内容。

use MCE::Grep;
my $patt="Jack";
my @arr1 = mce_grep_f { /$patt/ } 'logFile';
chomp(@arr1);
for my $line1 (@arr1){
    print "$line1\n";
}

如上所述作为单个命令执行时,它可以正常工作。

my @arr=undef;
for $i (@list) {
    print "List : $i\n";
    @arr = mce_grep_f { /$i/ } 'logFile';
    chomp(@arr);
    for my $line (@arr){
            print "$line\n";
    }
}

但是在for循环中执行相同操作时会出现问题。我想这可能是一些语法问题。请分享建议。

1 个答案:

答案 0 :(得分:0)

use strict;
use warnings;

use MCE::Grep;

my @list = ('Jack', 'Hobbie');

my $pat = join('|', @list);
my @arr = mce_grep_f { /$pat/ } 'logFile';

chomp(@arr);

for my $line (@arr){
   print "$line\n";
}