all -+
|
- +- chmod
- |
+- closure
|
+ +- deprecated
+ |
+- exiting
|
+- glob
| |
| +- exec
| |
+ | +- layer
+ | |
| +- newline
| |
| +- pipe
| |
| +- bareword
| |
- | +- deprecated
- | |
| +- digit
| |
| +- parenthesis
|
+- taint
|
- +- umask
- |
+- uninitialized
|
+- unpack
To determine which category a specific warning has been assigned to see
L<perldiag>.
+Note: In Perl 5.6.1, the lexical warnings category "deprecated" was a
+sub-category of the "syntax" category. It is now a top-level category
+in its own right.
+
+
=head2 Fatal Warnings
The presence of the word "FATAL" in the category list will escalate any
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:
+
+ no warnings qw(void);
+ no warnings FATAL => qw(void);
=head2 Reporting Warnings from a Module
sub open {
my $path = shift ;
- if (warnings::enabled() && $path !~ m#^/#) {
- warnings::warn("changing relative path to /tmp/");
+ if ($path !~ m#^/#) {
+ warnings::warn("changing relative path to /tmp/")
+ if warnings::enabled();
$path = "/tmp/$path" ;
}
}