evalによるエラー捕捉

HTML::Templateのエラー捕捉のエントリで


$SIG{'__DIE__'} = \&error;

とdieシグナルのキャッチの方法をとりあげましたが、
やっぱりこれは個人的に嫌い。
理由は全てのdieを無条件で拾ってしまうから。

でやっぱり、evalしかないのかなと。
例えばこんなの、、


my $t = eval{HTML::Template->new(
filename => $tmpl,
die_on_bad_params => 0,
)} or return undef;

まだこれの方がスマートに感じる、今日この頃です。
他にベストな方法があればご教授下さい。m(_ _)m