#!/usr/bin/perl use warnings; eval { event_start(); }; print "Should be visible even there is a warning"; sub event_start { local $SIG{__WARN__} = sub { print STDOUT "\nWarning generated:\n", @_, "\n"; die; }; print "Start\n"; if("test"==1){ print "create warning"; } print "Should not be shown"; }