Perl - eval()とは?warn、dieも。
・perl eval (Google検索結果)
・Perlリファレンス eval
eval()
print eval("3 * (5 + 3)")."\n"; $x = 10; $y = 0; $ans = eval{ $x / $y; };#0で割った場合 if($@) { warn "WARNING: $@"; } #エラーを$@に格納していたら、 open(OUT, "> xx"); eval{ flock(OUT, 2); }; if($@) { warn "WARNING: $@"; }
warnは、dieと同様にのメッセージを標準エラー出力STDERRに出力する。ただし、プロセスは終了しない。
warn(list)
・pel warn (Google検索結果)
・Perlリファレンス warn
dieは、perlスクリプトを終了する。listにSTDERRに出力し、$!の値(もし$!が0なら($?>>8)の値)をperlスクリプトの戻り値とする。
evalの中で使用した場合はスクリプトを終了しないで、listを$@に設定し、
evalがundefineで終了する。listの末尾に改行がない場合は、スクリプト名や行番号などが末尾に付加される。
die(list) open(IN, $file) || die "Can't open file.\n";