http://www.perlmonks.org?node_id=518361


in reply to Exception Classes Advice on Subclasses

In Java and C++, exceptions are typically instances of some class, and are "thrown" by bad code and caught in surrounding "try/catch" syntax.

While some people have built these elaborate synonymous structures using Perl packages, I have found very little advantage in them over using Perl's built-in exception mechanism.

In Perl, exceptions are a scalar value, stored in the special variable $@. These exceptions are "thrown" by bad code using the keyword die and caught in surrounding code by eval { } syntax.

The advantages of classes appears to be when there are so many possible causes of failure that you need to send back uber-complex reporting structures to attempt to explain it. If you don't need all this complexity (and you should always avoid undue complexity), just use die/eval.

Write Perl in Perl idioms using Perl's mechanisms. Otherwise you're just coding in Java or C++, but sprinkled with funny sigils.

--
[ e d @ h a l l e y . c c ]