eval
eval EXPR
eval BLOCK
EXPRないしはBLOCKを実行します。構文エラーや実行時エラーが発生した場合には未定義値を返し、$@にエラーメッセージを設定します。
EXPRを指定した場合、EXPRの結果をPerlのプログラムとして実行します。
BLOCKを指定した場合、BLOCKをPerlプログラムとして実行します。
サンプルプログラム
# evalにEXPRを指定するサンプル use strict; use warnings; my $expr = '(1 + 2) * (3 + 4)'; my $result = eval $expr; # (1 + 2) * (3 + 4) をPerlのプログラムとして実行する printf "%s = %d\n", $expr, $result; # (1 + 2) * (3 + 4) = 21
# evalにBLOCKを指定するサンプル
use strict;
use warnings;
my $old = 'old.txt';
my $new = 'new.txt';
eval {
rename $old, $new or die "rename($old, $new): $!";
};
if ($@) {
# エラー時に実行する処理
print "Error!\n";
print $@;
exit 1;
}
exit 0;
