miau's blog?

STDOUT

共通関数のテストをしてる、みたいなことを書きましたが。
その中の関数で、エラー時にそのままprint "$!";みたいなことやってる関数がありました。

いや・・・標準出力以外に出力したくなったらどうするんですか。
Web サイトとかだとそのままユーザの画面に出力ですか。
ファイルハンドル受け取ってそこに出力できるようにするとか、もっと testability というものを考えて(ry

なんてことを思ってましたが、結構どうにでもなるんでした。そういえば。

my $stdout;
{
local *STDOUT;
open(STDOUT, ">", \$stdout) or die "can't open STDOUT: $!";
print "hoge"; # "hoge" は $stdout に格納される
}
print "fuga"; # ここでは標準出力に吐かれる

こんな感じ。
ラクダ本だかなんだかでちゃんと読んだはずなのに忘れてた。

ちなみにうまくいってるか確認しようとして、local なスコープ内でprint $stdout;とかやって「あれー?うまくいかないなー?」とかやって数分格闘してた。
色々まだまだだ。


posted at 21:09:46 on 2005-02-01 by miau - Category: Perl No Trackbacks - Permalink

TrackBack

このエントリにトラックバックはありません
現在トラックバックは受け付けていません。

Comments

miau wrote:

Test::Output なんてモジュールもあるっぽい。
http://search.cpan.org/~sso...
2005-02-14 13:14:55

Add Comments

現在コメントは受け付けていません。
お手数ですが、 こちら のコメント欄にでも記載していただければと思います。