通过pipe道将parameter passing给系统的外部命令

我试图用系统调用从Perl打开一个外部命令。 我正在使用Windows。 我怎么能一个接一个地传递论据呢?

例如:

system("ex1.exe","arg1",arg2",....); 

这里ex1.exe是外部命令,我希望它先处理arg1,然后是arg2等等…

我希望你的回复,

使用管道打开 :

 use strict; use warnings; { local ++$|; open my $EX1_PIPE, '|-', 'ex1.exe' or die $!; print $EX1_PIPE "$_\n" for qw/arg1 arg2 arg3/; close $EX1_PIPE or die $!; } 

我假设你想管数据到ex1.exe的STDIN; 例如,如果ex1.exe是以下perl脚本:

 print while <>; 

那么如果你运行上面的代码,你的输出应该是:

 arg1 arg2 arg3 

你是否试图为每个参数执行一次ex1.exe? 类似于:

 > ex1.exe arg1
 > ex1.exe arg2
 > ex1.exe arg3

如果是这样,你会做:

 for my $arg (@args) { system( 'ex1.exe', $arg); }