3

我想从我的 Perl 代码中调用一个脚本并将其 STDERR 和 STDOUT 组合在一起。

我通常使用capturefromIPC::System::Simple但 ti 似乎不允许捕获 STDERR。

4

2 回答 2

3

您可以使用2>&1.

来自运营商的perlopqx//

因为反引号不影响标准错误,所以如果您想解决这个问题,请使用 shell 文件描述符语法(假设 shell 支持这一点)。一起捕获命令的 STDERR 和 STDOUT:

$output = `cmd 2>&1`;

于 2010-11-06T11:39:46.340 回答
2

在 POSIX 系统上,您可以执行以下操作。在 Windows 上,这将在cygwin中工作。

my @lines = capture("some command 2>&1");

但是,如果您想区分 STDERR 行和 STDOUT 行,可能需要使用IPC::Open3或错误命名的IPC::Open3::Util

于 2010-11-06T19:48:21.383 回答