如何在perl中将参数传递给system命令

时间:2013-09-27 15:04:25

标签: perl

我的命令:

system("start cmd.exe /k C:\\script.pl $arg1 $arg2 $arg3");

没有正确传递参数。这样做的正确方法是什么?

THX

1 个答案:

答案 0 :(得分:8)

调用system的最佳方法是使用数组或列表:

my @args = ("start", "cmd.ex", "/k", "C:\\script.pl", $arg1, $arg2, $arg3);
system @args;

system "start", "cmd.ex", "/k", "C:\\script.pl", $arg1, $arg2, $arg3;

system的单个字符串相比,这节省了“如何引用参数”的复杂性,因为shell没有机会解释它们。另一方面,如果您希望shell执行I / O重定向或管道,您可能不会使用此机制。