start page | rating of books | rating of authors | reviews | copyrights

Book HomeLearning Perl, 3rd EditionSearch this book

2.4. Perl's Built-in Warnings

Perl can be told to warn you when it sees something suspicious going on in your program. To run your program with warnings turned on, use the -w option on the command line:

$ perl -w my_program

Or, if you always want warnings, you may request them on the #! line:

#!/usr/bin/perl -w

That works even on non-Unix systems, where it's traditional to write something like this, since the path to Perl doesn't generally matter:

#!perl -w

Now, Perl will warn you if you use '12fred34' as if it were a number:

Argument "12fred34" isn't numeric

Of course, warnings are generally meant for programmers, not for end-users. If the warning won't be seen by a programmer, it probably won't do any good. And warnings won't change the behavior of your program, except that now it will emit gripes once in a while. If you get a warning message you don't understand, look for its explanation in the perldiag manpage.

Warnings change from one version of Perl to the next. This may mean that your well-tuned program runs silently when warnings are on today, but not when it's used with a newer (or older) version of Perl. To help with this situation, version 5.6 of Perl introduces lexical warnings. These are warnings that may be turned on or off in different sections of code, providing more detailed control than the single -w switch could. See the perllexwarn manpage for more information on these warnings.

As we run across situations in which Perl will usually be able to warn you about a mistake in your code, we'll point them out. But you shouldn't count on the text or behavior of any warning staying exactly the same in future Perl releases.



Library Navigation Links

Copyright © 2002 O'Reilly & Associates. All rights reserved.