Subsiste el problema aún de los mensajes de error emitidos con warn y die .
Si en algún lugar de l programa o librería se emite un warn
el mensaje se perderá.
Afortunadamente, Perl provee dos manejadores de señal 'virtuales' para modificar la conducta de warn y die .
Si se instala un manejador en $SIG{__WARN__}
, ese manejador será llamado en vez de warn
cada vez que aparece una llamada a warn
en el código. Para die
el equivalente es
$SIG{__DIE__}
. Así en el ejemplo anterior es posible redirigir todos los warn
y die
al
sistema de logs haciendo:
$SIG{__WARN__} = \&log_warn; $SIG{__DIE__} = \&log_die;
warn
y die
al sistema de log.Casiano Rodríguez León