Я пытаюсь изменить скрипт perl, чтобы закомментировать все строки, соответствующие некоторому шаблону. В обычной командной строке я пытаюсь добавить строку:
grep -lIRZ --exclude="*\.svn*" "pattern" . | xargs -0 -l sed -i -e 's/.*pattern.*/\/\/&/g'
Вот в контексте сценария Perl:
my $rmcmd = "grep -lIRZ --exclude=\"*\\.svn*\" \"pattern\" . | xargs -0 -l sed -i -e 's/.*pattern.*/\\/\\/&/g'";
runcmd($rmcmd);
...
sub runcmd {
my @cmd = @_;
print "Running: @cmd\n";
system(@cmd);
# Get status from system
my $ret = $? >> 8;
if ($ret) {
print "-E- command completed with error code $ret.\n";
exit(1);
}
return ($ret);
}
Все работает правильно при запуске из командной строки, но скрипт, выполняющий одну и ту же команду, всегда дает сбой.
Что делается по-другому и как я могу это исправить?