perl:如何将多个值传递给系统命令?

时间:2014-01-22 22:28:03

标签: perl

在dos中,我会运行以下命令

simread31 file.sim

程序会问我9个输入。

现在,我想在perl中这样做。我知道我可以将echosystem结合使用以获得一个输入,但是如何针对多个输入进行组合?

非常感谢

1 个答案:

答案 0 :(得分:3)

使用system()执行此操作时遇到问题的原因是,这是该作业的错误工具。如果您open(my $fh, '|-', 'simread31', 'file.sim'),您将能够printsay您对儿童计划的STDIN的输入。

我现在不在我的机器上,因此语法来自内存。 perldoc perlopen应提供更多详细信息。

<强>窗

由于Windows没有实现管道打开的列表形式,您应该使用以下内容: open(my $fh, '|-', "simread3.exe $sim_file")

直接从Perl输入管道输入通常比通过system()打开,写入,关闭,管道,然后清理外部文件更有效。