use diagnostics
use diagnostics; # compile-time enable use diagnostics -verbose; enable diagnostics; # run-time enable disable diagnostics; # run-time disable
This pragma expands the normal, terse diagnostics and suppresses duplicate warnings. It augments the short versions with the more explicative and endearing descriptions found in Chapter 33. Like other pragmas, it also affects the compilation phase of your program, not just the run phase.
When you use diagnostics
at the start of your
program, this automatically enables Perl's -w
command-line switch by setting $^W
to 1. The
remainder of your whole compilation will then be subject to enhanced
diagnostics. These still go out on STDERR
.
Because of the interaction between run-time and compile-time
issues, and because it's probably not a good idea anyway, you may not
use no diagnostics
to turn them off at compile
time. However, you may control their behavior at run time using the
disable
and enable
methods.
(Make sure you do the use
first, or else you won't
be able to get at the methods.)
The -verbose
flag first prints out the
perldiag manpage's introduction before
any other diagnostics are issued. The
$diagnostics::PRETTY
variable can be set (before
the use
) to generate nicer escape sequences for
pagers like less (1) or
more (1):
BEGIN { $diagnostics::PRETTY = 1 } use diagnostics;
Warnings dispatched from Perl and detected by this pragma are each displayed only once. This is useful when you're caught in a loop that's generating the same ...
Get Programming Perl, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.