我在尝试使用perl中的搜索n替换选项时遇到问题。
这不是unix中的问题,而是仅出现在windows中。我正在使用变量来搜索文件并用所需的字符串替换它。 我也在perl脚本中使用它,所以它只会增加问题!
$oldstring = 1234;
$newstring = 6789;
system("perl -pi.back e s/$oldstring/$newstring/g $filename");
我正在从数组中检索目录中的文件名,并将它们作为输入传递给单行。输出文件似乎没有变化,但它也没有报告任何警告或失败。
我也尝试了以下内容,
system("perl -pi.back e 's/$oldstring/$newstring/g' $filename");
为什么搜索n替换不按预期工作?
答案 0 :(得分:1)
您需要为system()
和命令行
system(qq(perl -pi.back -e "s/$oldstring/$newstring/g" $filename));
或使用更简单,更高效的系统而无需调用shell,
system("perl", "-pi.back", "-e", "s/$oldstring/$newstring/g", $filename);