我正在尝试使用系统调用从 Perl 打开外部命令。我在 Windows 上工作。我怎样才能一个接一个地向它传递参数?
例如:
system("ex1.exe","arg1",arg2",....);
这里 ex1.exe
是外部命令,我希望它先处理 arg1,然后再处理 arg2,依此类推...
非常感谢您的回复,
最佳答案
使用 pipe open :
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
关于windows - 一个接一个地通过管道将参数传递给系统的外部命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4028405/