在perl中使用数组元素进行模式匹配



作为Perl和正则表达式的新手,我正在尝试在Perl正则表达式中使用数组中的元素。这是的片段

my $temp  = $line =~ s/somestring[^n]*$_// for @myarray;

如果我硬编码字符串而不是$_,它可以很好地工作。另外$_单独打印字符串fine。那么我做错了什么?即使是使用for循环的扩展版本也不会产生匹配。

p.S只是为了澄清数组只有一个元素,我知道它与行匹配。

添加圆括号应该可以,尽管我希望数组的内容没有特殊字符,因为您需要使用quotemeta函数来转义它们。

my $temp;
($temp  = $line) =~ s/somestring[^n]*$_// for @myarray;

最新更新