$ perl -wE 'warn 1; $SIG{__WARN__} = sub { say "WARN: $_[0]" }; warn 2; { local $SIG{__WARN__}; warn 3 } warn 4' 1 at -e line 1. WARN: 2 at -e line 1. 3 at -e line 1. WARN: 4 at -e line 1.