簡単にログを出力する一行
を思いついたのでやってみた。
例えば、変数$msgの中身を/tmp/msg100123.logに保存する。
use Data::Dumper qw(Dumper); # 何か$msgについて処理 open LOG, '>', '/tmp/msg100123.log' and print LOG Dumper($msg) and close LOG;
一般的にはopen()が失敗したら例外を投げるべきだけれど、そこまでしっかりしたものじゃないときは便利かも。
何がいいって、そのまま文章として読めるのがいいよね。
ただまあ、普通は、デバッグ用のプロセスをちゃんと用意してたりするのだけれど。
あと、最初はファイルハンドルを変数に間接にしてたらエラーになった。
open my $fh, '>', '/tmp/msg100123.log' and print $fh Dumper($msg) and close $fh;
Can't use an undefined value as a symbol reference at - line 413.
同じ行で宣言してるから、print と close の時点ではまだ確定してない、みたいな感じだろうか。
あれ、じゃなんでファイルハンドルならいいんだ?
グローバル扱いだからかな?