local $SIG{'TERM'} = \&killalarm; local $SIG{'INT'} = \&killalarm; local $SIG{'__DIE__'} = \&diealarm; sub killalarm{ my $signal = shift; diealarm("Killed by signal $signal\n"); } sub diealarm{ my $params = shift; # some stuff, opening files, printing to files... }