If you've ever used
eval, or any modules, chances are you've had an error like this:
Use of uninitialized value in string eq at (eval 469) line 3.
It's telling you that somewhere on the 3rd line of the code passed to the 469th call to
eval, you're using an undefined value. That's not very fun! Who knows where eval was called the 469th time?
You could walk through your program and try to keep track of every time
eval was called, but that's not very fun. So what to do?
Turn your warning handler into something more descriptive.
At the top of your code, do this:
use Carp;
$SIG{__WARN__} = \&carp;
$SIG{__DIE__} = \&confess;
carp and
confess are equivalent to
warn and
die, respectively, except that they print a stack trace as well as the error message. Now, rerun your code and get
Use of uninitialized value in string eq at (eval 469) line 3.
at /home/alester/Lib/TW/CP.pm line 116
No counting of
eval calls required!
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.