My understanding is that as of 5.6 -w on the command
use warnings in your code are identical. Both "enable many useful warnings".
As of 5.6 (maybe earlier, I'm not sure) there is a -W
command line option
that will "enable all warnings". I do not know if there is
a use equivalent to -W.
RE: RE: CGI::Carp
Replies are listed 'Best First'.
As far as I know, the use warnings pragma was introduced as:
- it is easier for people who are on non 'shebang supporting' systems to use.
- it can be disabled for certain blocks etc.
Here's an introduction to the new pragma from the What's new in Perl 5.6 page:
'Death is not good. I reject death. I will stay away from trucks today.' - lwall
The way Perl generates warnings has also been completely revised: as a replacement for the -w flag and the $^W special variable, the
warnings pragma gives you more flexibility about what warnings you receive and when. In terms of what, you can now specify warnings by category: there are a bunch of standard categories, such as 'syntax', 'io', 'void', and
modules will be able to define their own categories. You can also choose to escalate any categories of warning into a fatal error.
As for when, the pragma is lexically scoped, so you can switch it on and off as you wish:
$a = @a; # This generates a warning.
$a = @a; # This does not.