12.12. Reporting Errors and Warnings Like Built-InsProblem
You want to generate errors and warnings in your modules, but when you use Solution
The standard
Carp module provides functions to do this. Use Discussion
Like built-ins, some of your module's functions generate warnings or errors if all doesn't go well. Think about sub even_only { my $n = shift; die "$n is not even" if $n & 1; # one way to test #.... }
then the message will say it's coming from the file your use Carp; sub even_only { my $n = shift; croak "$n is not even" if $n % 2; # here's another #.... }
If you just want to complain about something, but have the message report where in the user's code the problem occurred, call use Carp; sub even_only { my $n = shift; if ($n & 1) { # test whether odd number carp "$n is not even, continuing"; ++$n; } #.... }
Many built-ins emit warnings only when the
-w
command-line switch has been used. The carp "$n is not even, continuing" if $^W;
Finally, the Carp module provides a third function: See Also
The
Copyright © 2002 O'Reilly & Associates. All rights reserved. |
|