我想从我的Perl脚本中执行一个外部命令,将stdout和stderr的输出放入我选择的$变量中,并将命令的退出代码放入$?变量.
我在perlfaq8及其论坛中找到了解决方案,但他们并没有为我工作.奇怪的是,只要退出代码是正确的,我在任何情况下都不会获得sdterr的输出.
我在Red Hat Linux 5上使用Perl版本5.8.8.
这是我正在尝试的一个例子:
my $cmd="less"; my $out=`$cmd 2>&1`;
要么
my $out=qx($cmd 2>&1);
要么
open(PIPE,"$cmd 2>&1|");
当命令成功运行时,我可以捕获stdout.
我不想使用其他捕获模块.如何捕获外部命令的完整结果?