Perl和regex的新手不说,我试图在perl正则表达式中使用数组中的元素。这是片段
my $temp = $line =~ s/somestring[^\n]*$_// for @myarray;
如果我硬编码字符串而不是$ _,它可以正常工作。 $ _也可以单独打印字符串。那么我做错了什么?即使使用for循环的扩展版本也不会产生匹配。
P.S只是为了澄清数组只有一个元素,我知道它与该行匹配。
答案 0 :(得分:4)
它应该可以添加括号,虽然我希望数组的内容没有特殊字符,因为你需要使用quotemeta
函数来逃避它们。
my $temp;
($temp = $line) =~ s/somestring[^\n]*$_// for @myarray;