Perlにはtryとcatchの例外処理構文はありません。
必要なら自分で書きます。(もちろん普通はeval{...};if($@){...}で十分です)
#!/usr/bin/perl use strict; use warnings; use Switch; ## try...catch構文を定義(ラクダ本???ページより) sub try(&$){ my ($try, $catch) = @_; eval { &$try }; if($@){ local $_ = $@; &$catch; } } sub catch(&){ $_[0] } ## 使用例 try { die "ERR1"; } catch { switch ($_) { case /ERR1/ { print "ERR1 !!!\n" } case /ERR2/ { print "ERR2 !!!\n" } else { print "unknown error:$_" } } }
ERROR.pmを使えばfinallyとかも使えますが。
これが普通にできてしまうのがPerlの凄さでもあり、キモさでもあるんでしょうね。