¿Cuál es la forma correcta de morir con un error pero sin un seguimiento de pila en Perl?
-
01-10-2019 - |
Pregunta
Estoy escribiendo un script Perl, y en la parte donde yo estoy comprobando las opciones que el usuario preste en la línea de comandos, quiero salir con un error explicando lo que estaba mal con las opciones. En este caso, no hay necesidad de un seguimiento de la pila para ir junto con este mensaje de error. Entonces, ¿cuál es la mejor forma de morir con un mensaje de error pero no hay información de depuración o de seguimiento de la pila?
He intentado lo siguiente:
die "Invalid options";
que produce
Invalid options at myscript.pl line 49.
A continuación, he intentado
use Carp;
...
croak "Invalid options";
que produce
Invalid options at myscript.pl line 47
main::prepare_output_directory() called at myscript.pl line 546
Entonces, ¿cómo puedo simplemente morir con Invalid options
y nada más?
Bono pregunta: ¿por qué no croak
dime que el error está en la línea 47, cuando la llamada real a croak
está en línea 49
Solución
Sólo hay que poner una nueva línea al final de la cadena die
:
die "Invalid options\n";
Esto evitará que la ubicación del error de ser anexado al mensaje.