use strict; use warnings; use Data::Dump qw/pp dd/; my ($before,$after); BEGIN { $before = ${^WARNING_BITS} } no warnings 'exiting'; BEGIN { $after = ${^WARNING_BITS} } my $diff = $before ^ $after; warn unpack ('B*',$diff); { use warnings; BEGIN { ${^WARNING_BITS} = $after }; # this only works at compile time!!! sub test {last }; test(); }