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