• 締切済み

Perl中で teeを使っても戻り値を得たい

例えば make compile |& tee log とすると、tee のせいでmake の戻り値が得られないということに関しての相談です。 いま、perlの中で、 > $cmd = "$make compile 2>&1| tee compile.log"; > $rval = system($cmd); > if($rval){ print "Error\n"} のような使い方をしています(実際は$rval >>8 とする必要があるようです)。 上記のようにログを端末に表示し、ファイルにも落とし、かつ戻り値も利用したい、という場合、どのようにしたらよいのでしょうか。 # BASHでは echo ${PIPESTATUS[0]} で得られる、 # Perl のTee Moduleがあるなどの情報だけは発見できたのですが。。。 宜しくお願い致します。

みんなの回答

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.1

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=31021&forum=10 の回答を参考に、teeコマンドではなく、Perlで端末とファイルに出力すればいいかと思います。

関連するQ&A