我正在尝试进行替换(并且有其他几个人在同一个脚本中工作),但即使我正在寻找的东西也存在,但是我确实知道这一点,因为简单的查找正则表达式成功了。
print "$search : $replace \n";
if($output =~ /($search)/)
{
print "found $1\n";
}
if($output =~ s/$search/$replace/)
{
print "substituted\n";
}
我从第一个print语句中知道两个变量都包含预期值。
“found”打印语句打印预期结果。
“替换”的print语句永远不会打印,并且$ output的内容不会被替换正则表达式改变。
为什么替换不起作用,即使查找有效?
答案 0 :(得分:2)
不会。你可能有
if($output =~ /($search)/g)
如果情况并非如此,请提供问题的实际演示。或者如果不可能,至少在每个if
之前提供以下输出。
use Devel::Peek;
Dump($output);
Dump($search);
提供perl -V
(大写V
)的输出也不会有害。