perl 中的 system() 出现错误

perl 中的 system() 出现错误

'

在 ./scripttemp.perl 第 5 行,靠近“”的操作符处找到数字 sed -i -r “4”(4 之前缺少操作符?) 在 ./scripttemp.perl 第 5 行,靠近“}”的操作符处找到字符串error.txt"" (" error.txt" 之前缺少运算符?) ./scripttemp.perl 第 5 行附近的语法错误 ""sed -i -r "4" ./scripttemp.perl 第 5 行附近的语法错误"s/[-.*-]//g}" 由于编译错误,./scripttemp.perl 的执行中止。 '

运行我的脚本时出现此错误:

**#!/usr/bin/perl
use warnings;
use strict;
exec("sed -i -r "4{s/\{\+//; s/\+}//; s/\[-.*-]//g}" error.txt");**

请告诉我出了什么问题?

答案1

这是你使用双引号的问题。除非双引号被转义,否则不能在双引号“内部”使用双引号。相反,您可以转义双引号或更佳地使用单引号来替代引号:

#!/usr/bin/perl
use warnings;
use strict;
exec("sed -i -r '4{s/\{\+//; s/\+}//; s/\[-.*-]//g}' error.txt");

相关内容