Estoy escribiendo una secuencia de comandos perl, y en la parte en la que estoy verificando las opciones que el usuario suministró en la línea de comandos, quiero salir con un error explicando qué problema tenían las opciones. En este caso, no hay necesidad de que un seguimiento de la pila vaya junto con este mensaje de error. Entonces, ¿cuál es la mejor manera de morir con un mensaje de error pero sin seguimiento de pila o información de depuración?¿Cuál es la forma correcta de morir con un error pero sin un rastro de pila en Perl?
He intentado lo siguiente:
die "Invalid options";
que produce
Invalid options at myscript.pl line 49.
Entonces, traté
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 morir con Invalid options
y nada más?
Pregunta de bonificación: ¿por qué croak
me dice que el error está en la línea 47, cuando la llamada real a croak
está en la línea 49?
re: pregunta extra, ¿muestra más contexto para su croak? – ysth
No importa en la pregunta extra. Me preguntaba si podría haber alguna razón general. –
Para su pregunta de bonificación: 'croak' intenta informar el número de línea desde la perspectiva de la persona que llama. Lea los documentos para el módulo [Carp] (http://perldoc.perl.org/Carp.html). –