oscar@toreyes-i7:~/WIP/perl/gestion_DIE$ cat prueba2.pl use diagnostics; use strict; use Data::Dumper; sub mensaje() { print "OJO !!!! Este script se ha muerto por la ejecución de die()\n"; } sub handler { # 1st argument is signal name # En caso de una "unhandled excepcion" como la generada # por die(), @_ parece que es el mensaje de error en vez # del identificador de una señal real. my($sig) = @_; print "Dumper(\$sig): ", Dumper($sig); if ($sig) { print "sig:", $sig, "\n"; print "Caught a SIG$sig--shutting down\n"; } else { print "sig no tiene un valor de señal\n"; } ## exit(0); } # Instalar manejador en caso de ejecutarse un die() # $SIG{__DIE__} = \&mensaje; $SIG{__DIE__} = \&handler; my $refFake = 'pepe'; print $refFake->{'lolo'}; # Aqui se genera el error print "Me moriré antes de mostrar esta linea\n"; oscar@toreyes-i7:~/WIP/perl/gestion_DIE$ echo $? 255