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;

関連項目

die関数