Just as a side note, thinking about it there won't be anything in Perl that overrides signal handling. The important thing here is the order in which the processes receive the signal. Using ssh, the shell receives the signal first and it will only let it "bubble" (to borrow event driven terminology) if it doesn't handle it. Running a Perl script from a shell, the script receives the signal first and if there's no handler passes it down to the shell. Which is as it should be.