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
With Perl 5.6 and later, you can turn on warnings with a pragma (but be careful because it won’t work for people with earlier versions of Perl):[*]
#!/usr/bin/perl use warnings;
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, you can get a longer description
of the problem with the diagnostics
pragma. The perldiag manpage has both the short
warning and the longer diagnostic description:
#!/usr/bin/perl use diagnostics;
When you add the use
diagnostics pragma to your program, it may seem to you that your program now pauses for a moment whenever you launch it. That’s because your program has to do a lot of work (and a chunk of memory to gobble) just in case you want to read the documentation ...