CPAN: korrekte Ausnahmebehandlung

Beitrag lesen

eval {
     die "blablabla";
};

if ($@) {
   print $@; # print "blablabla";
}

Dies ist buggy, weil $@ nicht lokalisiert wurde. Immer so schreiben:

  
eval {  
    die "blablabla";  
    1;  
} or do {  
    print $@;    # print "blablabla";  
}  

oder besser gleich

  
use Try::Tiny;  
try {  
    die "blablabla";  
} catch {  
    print $_;    # Ausnahmeobjekt ist in $_  
};