in reply to Get stricter with use warnings FATAL => 'all';

Hmmm, I can see some use in making warnings fatal, especially for debugging. But JavaFan's two replys are a good point: Harmless warnings should not kill production code. They could (and perhaps should) be logged, so errors can be debugged later.

Code will remain mostly without FATAL => 'all'. Except when you are debugging or a module author thinks that his code needs FATAL => 'all' enabled by default. But when you are debugging, you should not need to hack FATAL => 'all' into each and every file. There should be a way to force FATAL => 'all' from outside the code. Perhaps with a command line parameter or an environment variable. For extra bonus points, forcing FATAL => 'all' could be limited to a set of modules (list? regexp?).

Carp has a similar mechanism that you can enable by including -MCarp=verbose on the perl command line or in $ENV{'PERL5OPT'}. DBI has $ENV{'DBI_TRACE'}.

A simple-minded aproach could be ...

push @_,FATAL => 'all' if $ENV{'PERL_FATAL_WARNINGS'};

... as the first line in sub warnings::import. It would affect only code that use warnings. For more, perl will probably need some patches.

Alexander

--
Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so". ;-)