我想在我的Perl脚本中执行一个外部命令,将stdout和stderr的输出放入我选择的$variable
中,并获得命令的退出代码放入$?
变量中。从外部* nix命令获得STDOUT,STDERR和响应代码perl
我在perlfaq8和他们的论坛中经历了解决方案,但他们不适合我。奇怪的是我不需要在任何情况下得到sdterr的输出,只要退出代码是正确的。
我使用Perl版本5.8.8,在Red Hat Linux 5
这里有一个例子我尝试:
my $cmd="less";
my $out=`$cmd 2>&1`;
或
my $out=qx($cmd 2>&1);
或
open(PIPE, "$cmd 2>&1|");
当指挥官d运行成功,我可以捕获stdout。
我不想使用额外的捕获模块。如何捕获外部命令的完整结果?
只需使用[IPC ::运行](https://metacpan.org/module/IPC::Run )这使得这很容易。 – 2012-01-04 20:11:52
相关:http://stackoverflow.com/q/3263912/2157640 – Palec 2014-09-12 15:23:12