わたなべです.

GOTO Kentaro <gotoken / math.sci.hokudai.ac.jp> writes:

:ruby にもし tee(1) みたいなのがあって、出力先を複製できるなら、
:いいのですが、そういうことはできないようなので
:人が出してくれたエラーも記録するために stderr と stdout は
:分けて使っています。

そういえば将来は tee に相当することもできるようになるって話
もありましたね.

ちなみに perl5.004 なら TIEHANDLE を使ってこんな感じで log 
だけ EUC に変換して残すなんてこともできます.

use IO::File;
use Kconv;

package Tee;

sub TIEHANDLE {
    my $fh = IO::File->new;
    $fh->open("log", "a");
    bless $fh, shift;
}
sub PRINT {
    my $fh = shift;
    print $fh join($,, map(Kconv::toeuc($_), @_)), $\;
    print STDERR join($,, @_), $\;
}
sub DESTROY {
    shift->close;
}

tie(*ERROUT, 'Tee');
print ERROUT "こんにちは\n";

-- 
わたなべひろふみ