RMGir has asked for the wisdom of the Perl Monks concerning the following question:
<GRUMP>
I ran into an annoying problem today, again.
Whenever I code, I always use strict, -w, and code defensively. I try to test as much as I can, and I always make sure at a minimum that code is -c clean after any editing pass.
Great.
But I still get bit, on occasion, by typos in function names.
The only way you'll find out that there's a typo in
is at run time, when the app croaks because "Undefined subrouting &main::handelNewYear called at...", and only if you happen to excercise that branch of your code.sub handleNewYear { # do something really useful } # ... lotsa logic... if($mday==1 && $month==1) { handelNewYear(); }
If it happens to be your new year's day special case handling logic, I guess you'll get beeped out of the party :)
I realize there's no way -w could catch this; there could be autoloads providing the subroutine, or it could have been dynamically generated at runtime in an eval, or something.
But it would be nice if there was a way to catch such cases, without having to write a test suite that exercises every code branch, which isn't always (or even usually) possible.
</GRUMP>
Mike