Perl:如何将ARGV参数传递给另一个脚本?

时间:2014-03-06 07:58:13

标签: perl parameters system call argv

我编写了一个启动另一个程序的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

是否有一种优雅的方式正确传递参数?

1 个答案:

答案 0 :(得分:5)

system()可与参数列表一起使用

system("script.sh", @ARGV);

这也是system使用的首选方式,您不必担心 "param with spaces"