我编写了一个启动另一个程序的Perl脚本,我希望它将收到的确切ARGV参数传递给已启动的程序。
目前我使用此代码:
my $cmd = "script.sh"
my $params_str = "";
foreach my $param (@ARGV) {
$params_str .= " $param";
}
$cmd .= " " . $params_str;
system($cmd);
但我担心以下情况会有问题:
>perl script.pl "param with spaces" param2 param3
因为它会将我的$cmd
调用第一个参数分为3个参数,因为引号会被删除:param with spaces param2 param3
是否有一种优雅的方式正确传递参数?
答案 0 :(得分:5)