¿Cuál es la forma correcta de morir con un error pero sin un seguimiento de pila en Perl?

StackOverflow https://stackoverflow.com/questions/3593664

  •  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

¿Fue útil?

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.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top