warn() carp() die() croak() について
- warn() は、警告メッセージ出力に使う。
- carp() は、warn()プラス、「どの呼び出しが警告を発したか」がわかりる。
- die() は、 例外送出(デフォルトではエラーメッセージをSTDERRに吐いてexit)。
- croak() は、 die()プラス、「どの呼び出しがdieを発したか」がわかりる。
exit() は、単にプログラム終了なのに対して、die()は、例外送出。
- die()は例外送出である
- デフォルトではエラーメッセージをSTDERRに吐いてexitしてくれる
- exit()はなるべく使わずにdie()を使え
- OOなdie()もアリ
- $SIG{__DIE__}で前処理も可能
my $what_happened; eval{ local $SIG{__DIE__} = sub { $what_happened = shift; }; die "I am not dead yet"; print "I will not be executed"; }; print STDERR qq(what_happend = '$what_happened'\n); die "normally";http://blog.livedoor.jp/dankogai/archives/51048234.html