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 ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access