【问题标题】:Perl: How to pass ARGV parameters to another script?Perl:如何将 ARGV 参数传递给另一个脚本?
【发布时间】: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


    【解决方案1】:

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-08
      • 1970-01-01
      • 2016-10-26
      • 2011-11-01
      • 1970-01-01
      相关资源
      最近更新 更多