note
halley
In Java and C++, exceptions are typically instances of some class, and are "thrown" by bad code and caught in surrounding "try/catch" syntax.
<p>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.
<p>In Perl, exceptions are a scalar value, stored in the special variable <c>$@</c>. These exceptions are "thrown" by bad code using the keyword <c>die</c> and caught in surrounding code by <c>eval { }</c> syntax.
<p>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 <i>undue</i> complexity), just use <c>die</c>/<c>eval</c>.
<p>Write Perl in Perl idioms using Perl's mechanisms. Otherwise you're just coding in Java or C++, but sprinkled with funny sigils.
<div class="pmsig"><div class="pmsig-249603">
<p>--<br><tt>[ e d @ h a l l e y . c c ]</tt>
</div></div>
518228
518228