3

Perlコードからスクリプトを呼び出し、そのSTDERRとSTDOUTを組み合わせてキャプチャしたいと思います。

私は通常fromを使用captureしますIPC::System::Simpleが、tiはSTDERRのキャプチャを許可していないようです。

4

2 に答える 2

3

STDERR(ファイル記述子2)をSTDOUT(ファイル記述子1)にリダイレクトできます2>&1

オペレーターのperlopからqx//

バックティックは標準エラーに影響を与えないため、これに対処する場合は、シェルファイル記述子構文を使用してください(シェルがこれをサポートしていると想定)。コマンドの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 に答える