3

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

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

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

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

4

1 回答 1

4

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

my $temp;
($temp  = $line) =~ s/somestring[^\n]*$_// for @myarray;
于 2012-07-13T17:40:54.947 回答