all -+
|
+ +- assertions
+ |
+- closure
|
+- deprecated
category into a fatal error, so the program terminates immediately it
encounters the warning.
-To explicitly disable a "FATAL" warning you just disable the warning it is
-associated with. So, for example, to disable the "void" warning in the
-example above, either of these will do the trick:
+To explicitly turn off a "FATAL" warning you just disable the warning
+it is associated with. So, for example, to disable the "void" warning
+in the example above, either of these will do the trick:
no warnings qw(void);
no warnings FATAL => qw(void);
+If you want to downgrade a warning that has been escalated into a fatal
+error back to a normal warning, you can use the "NONFATAL" keyword. For
+example, the code below will promote all warnings into fatal errors,
+except for those in the "syntax" category.
+
+ use warnings FATAL => 'all', NONFATAL => 'syntax';
+
=head2 Reporting Warnings from a Module
The C<warnings> pragma provides a number of functions that are useful for
sub open {
my $path = shift ;
if ($path !~ m#^/#) {
- warnings::warn("changing relative path to /tmp/")
+ warnings::warn("changing relative path to /var/abc")
if warnings::enabled();
- $path = "/tmp/$path" ;
+ $path = "/var/abc/$path";
}
}