PerlIO::via::ANSIColor
思いつきと勢いだけで PerlIO::via::ANSIColor というものを作って CPAN にあげました。
use PerlIO::via::ANSIColor color => 'reverse green'; binmode STDERR, ':via(ANSIColor)'; warn "this outputs is colored\n";
とすると warn で出力されるメッセージが緑の反転になります。STDOUT も普通のファイルハンドルでも使えます。Term::ANSIColor 好きにはたまらない。かも。
2007-07-23 追記
POD を更新したので追記しておきます。
use PerlIO::via::ANSIColor; PerlIO::via::ANSIColor->color('reverse red'); open my $redfh, ">&STDOUT" or die $!; binmode $redfh, ':via(ANSIColor)'; PerlIO::via::ANSIColor->color('reverse blue'); open my $bluefh, ">&STDOUT" or die $!; binmode $bluefh, ':via(ANSIColor)'; print $redfh "this color is reverse red\n"; print $bluefh "this color is reverse blue\n";
とすると $redfh に出力すると赤の反転、$bluefh に出力すると青の反転が標準出力に出力されます。