Ich schreibe ein Perl-Skript, und in dem Teil, wo ich die Optionen, die der Benutzer in der Befehlszeile angegeben, überprüft habe, möchte ich mit einem Fehler beenden erklären was mit den Optionen falsch war. In diesem Fall ist es nicht erforderlich, dass eine Stack-Ablaufverfolgung mit dieser Fehlermeldung einhergeht. Also, was ist der beste Weg, um mit einer Fehlermeldung zu sterben, aber keine Stack-Trace oder Debug-Informationen?Was ist der richtige Weg, um mit einem Fehler zu sterben, aber ohne einen Stack-Trace in Perl?
Ich habe versucht, die folgenden:
die "Invalid options";
die dann
Invalid options at myscript.pl line 49.
produziert, habe ich versucht,
use Carp;
...
croak "Invalid options";
die
Invalid options at myscript.pl line 47
main::prepare_output_directory() called at myscript.pl line 546
012 erzeugt
Also wie kann ich nur mit Invalid options
und nichts anderes sterben?
Bonusfrage: Warum sagt croak
mir, dass der Fehler in Zeile 47 ist, wenn der eigentliche Anruf an croak
ist in Zeile 49?
re: Bonus Frage, mehr Kontext für Ihr Quaken zeigen? – ysth
Vergiss die Bonusfrage. Ich habe mich nur gefragt, ob es einen allgemeinen Grund geben könnte. –
Für Ihre Bonusfrage: 'krächzen' versucht die Zeilennummer aus der Sicht des Anrufers zu melden. Lesen Sie die Dokumentation für das Modul [Karpfen] (http://perldoc.perl.org/Carp.html). –