in reply to using FATAL warnings

You could do
+ my $keyword = 0; + my $usage = 0; foreach my $word ( @_ ) { if ($word eq 'FATAL') { + $usage ||= $keyword; + $keyword = 1; $fatal = 1; $no_fatal = 0; } elsif ($word eq 'NONFATAL') { + $usage ||= $keyword; + $keyword = 1; $fatal = 0; $no_fatal = 1; } elsif ($catmask = $Bits{$word}) { + $keyword = 0; $mask |= $catmask ; $mask |= $DeadBits{$word} if $fatal ; $mask &= ~($DeadBits{$word}|$All) if $no_fatal ; } else { Croaker("Unknown warnings category '$word'")} } + warn("No warning categories specified for FATAL or NONFATAL") + if $usage;
but it breaks backwards compatibility if someone does
use warnings FATAL => @fatals;

As such, this might be better off as a Perl::Critic check.