PERL MCE::Grep - 为什么 mce grep 模式在循环中动态传递时不起作用

PERL MCE::Grep - Why doesn't mce grep pattern work when dynamically passed in a loop

我正在使用 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 循环中执行相同的操作时出现问题。我想这可能是一些语法问题。请分享建议。

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";
}