Each method has its strengths. The warning handler takes less work to do. But will break if anyone else decides to create a warning handler. And it doesn't help if you trying to trace what happened through 3
eval statements in a long stack backtrace. (Most of my errors already use Carp::confess, so
petdance's proposal doesn't add anything that I already usually have.)
The alternative that I suggested takes more work, but adds context to the error message. Furthermore it isn't any more work than you have to do already just to undo the fact that eval traps errors.
I find my alternative particularly useful when the eval constructed a function that is being called dynamically later. (Like the example that I pointed at in my code.) In that case a stack backtrace only tells you that method X was called somewhere, and that method X was generated in some eval, in some class. Quick, which class was it produced in, and find me the code that produced it!
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.