【发布时间】:2014-04-08 17:32:40
【问题描述】:
我编写了一个启动另一个程序的 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
有没有一种优雅的方式来正确传递参数?
【问题讨论】:
标签: perl parameters system call argv