Tengo un módulo que necesita verificar en un bloque BEGIN. Esto evita que el usuario vea un mensaje inútil en la línea (durante la fase de compilación, visto en el segundo BEGIN aquí).Suprimir "BEGIN failed - compilation aborted at"
El problema es que si muero dentro del BEGIN, el mensaje que arrojo queda enterrado detrás de BEGIN failed--compilation aborted at
. Sin embargo, prefiero die
a exit 1
, ya que sería interceptable. ¿Debería usar exit 1
o hay algo que pueda hacer para suprimir este mensaje adicional?
#!/usr/bin/env perl
use strict;
use warnings;
BEGIN {
my $message = "Useful message, helping the user prevent Horrible Death";
if ($ENV{AUTOMATED_TESTING}) {
# prevent CPANtesters from filling my mailbox
print $message;
exit 0;
} else {
## appends: BEGIN failed--compilation aborted at
## which obscures the useful message
die $message;
## this mechanism means that the error is not trappable
#print $message;
#exit 1;
}
}
BEGIN {
die "Horrible Death with useless message.";
}
Gracias! Ahora todo lo que obtengo es: 'Faltan algunos módulos necesarios o se deben actualizar antes de configurar Alien :: GSL. Esos módulos son: \t Sort :: Versions' –
Debo decir, ¡que es lo que quería! –