私のPerlスクリプトからstdoutとstderrの両方の出力を私の選択した$variable
に入れて、コマンドの終了コードを$?
変数に追加します。perlの外部* nixコマンドからの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|");
dが正常に実行され、私はstdoutをキャプチャできます。
追加のキャプチャモジュールは使用しません。外部コマンドの完全な結果をどのようにキャプチャできますか?
だけ使用[IPC ::ファイル名を指定して実行](https://metacpan.org/module/IPC::Run:次に、このようなIPC ::のopen3としてパッケージに頼ることなく、次のようにstdoutとstderrの両方を読み込みます)これはこれを簡単にします。 –
関連:http://stackoverflow.com/q/3263912/2157640 – Palec