デバッグ情報を出力する
warn
は警告を発しますが、通常は STDERR
にその警告を出力します。
出力する内容は LIST に指定された文字列を連結したものです。
warn
は引数の LIST を die
と同じように扱います。つまり、LIST の末尾に改行が存在しなければ、
メッセージの最後に line 10.
のように行番号が付加されます。
末尾に改行がなければ、LIST に指定した通りのメッセージだけが出力されます。
warn 'Warning message'; # "Warning message at sample.pl line 10."
warn 'Warning message', "\n"; # "Warning message"
前述の通り、warn
は引数の LIST を die
と同じように扱いますが、LIST が空のときの挙動が少し異なります。
もし LIST が空で、かつ、$@ も空なら、
"Warning: Something's wrong"
と出力されます。
warn;
Warning: something's wrong at sample.pl line 10.
LIST が空で、$@ が空でなければ、"\t...caught"
が最後に付加されます。
eval { die 'Faital error!'; };
warn;
Faital error! at sample.pl line 12.
...caught at sample.pl line 13.