Perlでtry catch
Java ではよく見かける try catch 文、
public Object bug() throws Exception [ throw new Exception("!!!"); } public void hoge() { try { Object obj = bug(); } catch(Exception e) { // } }
なんと Perl では以下のように書くことで実現できるそうです。
まったく、なんて節操のない言語なんだ(笑)
sub bug { die "!!!"; } sub hoge { eval { my $obj = bug(); }; if ($@) { // } }
bug の部分はもうちょっと複雑で DateTime->new(); で引数がまずかったら undef を返してくれればいいものを die して落ちるという問題が発覚し、上記のような手段で回避しました。eval して使うことを前提にしているなら確信犯ですね・・。