我想从我的 Perl 代码中调用一个脚本并将其 STDERR 和 STDOUT 组合在一起。
我通常使用capture
fromIPC::System::Simple
但 ti 似乎不允许捕获 STDERR。
您可以使用2>&1
.
来自运营商的perlopqx//
:
因为反引号不影响标准错误,所以如果您想解决这个问题,请使用 shell 文件描述符语法(假设 shell 支持这一点)。一起捕获命令的 STDERR 和 STDOUT:
$output = `cmd 2>&1`;
在 POSIX 系统上,您可以执行以下操作。在 Windows 上,这将在cygwin中工作。
my @lines = capture("some command 2>&1");
但是,如果您想区分 STDERR 行和 STDOUT 行,可能需要使用IPC::Open3或错误命名的IPC::Open3::Util。