in reply to Re: Destructors when the program is stopped via a signal
in thread Destructors when the program is stopped via a signal

And the cool part is that sigtrap can do it all for you:
use sigtrap qw(die untrapped normal-signals stack-trace any error-sign +als);