Perl - eval()とは?warn、dieも。

perl eval (Google検索結果)
Perlリファレンス eval
eval()


eval(expr)やeval{...}で、ブロックや括弧内をPerlスクリプトとみなして実行する。最後に実行した命令の結果が戻り値として返される。
エラーやdieだったら、undefineを返し、$@にエラーメッセージを格納する。evalを用いて、Perlのプログラムの異常終了を防ぐことができる。

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";

perl die (Google検索結果)