En las versiones de Perl anteriores a la 5.7.3 puede ocurrir que si el manejador de la señal hace alguna operación que implica la reorganización de la memoria (creación/destrucción) después del retorno del manipulador el intérprete se encuentre con un estado incoherente del sistema y que eventualmente se derrumbe. Es por ello que se aconseja que para esas versiones los manejadores de interrupciones deben mantenerse lo mas simples posibles. Preferentemente deben limitarse a cambiar una variable de valor indicando la presencia de la interrupción. También deben evitarse las operaciones de entrada/salida.
En las versiones posteriores a la 5.7.3 las señales son postergadas.
Esto es, cuando el sistema operativo entrega la señal
es recibida por el código C que implementa el intérprete Perl. Este
ejecuta un manejador especial
que establece una flag y termina inmediatamente. Posteriormente, tan pronto como
se alcanza un punto seguro de la ejecución, por ejemplo cuando se va a ejecutar un
nuevo opcode 3.1 se comprueban las flags y el manejador instalado por el usuario en %SIG
es ejecutado.