Anonymous Monk,
Your problem isn't likely what you think it is. In version 5.8.0, Perl added "safe signals". Even though the signal is getting delivered, it is not acting on it immediately. In even more recent versions of Perl (>= 5.8.1), you can return to the old behavior by modifying a environment variable (PERL_SIGNALS=unsafe). See perlipc and perlrun for more information.