我可以使用来自另一个perl脚本中间的系统调用从perl脚本获取值吗?

Che*_*eso 1 perl stdin arguments stdout parameter-passing

我正在尝试修改其他人编写的脚本,我想让我的脚本与他的脚本分开.

我写的脚本以print一行输出,该行输出由空格分隔的所有相关数据.

例如: print "$sap $stuff $more_stuff";

我想在另一个perl脚本的中间使用这些数据,我不确定是否可以使用系统调用我写的脚本.

例如: system("./sap_calc.pl $id"); #obtain printed data from sap_calc.pl here

可以这样做吗?如果没有,我该怎么办呢?


有点相关,但没有使用system():

如何让一个Perl脚本在另一个Perl脚本中查看变量?

如何将参数从一个Perl脚本传递给另一个?

Lin*_*een 5

你正在寻找"反击操作员".

看看perlop,"类似报价的运营商"一节.

通常,捕获程序的输出如下:

my $output = `/bin/cmd ...`;
Run Code Online (Sandbox Code Playgroud)

请注意,反引号操作符捕获STDOUT .因此,为了捕获所有内容(也是STDERR),命令需要附加通常的shell重定向" 2>&1".

  • 如果您需要接触STDERR,还有[`open3`](http://search.cpan.org/perldoc?IPC::Open3). (3认同)