6

私は perl スクリプトを書いています。ユーザーがコマンド ラインで指定したオプションをチェックしている部分で、オプションの何が問題なのかを説明するエラーで終了したいと考えています。この場合、このエラー メッセージに伴うスタック トレースは必要ありません。では、スタック トレースやデバッグ情報が表示されずにエラー メッセージが表示される最善の方法は何でしょうか?

私は次のことを試しました:

die "Invalid options";

生産する

Invalid options at myscript.pl line 49.

それから、私は試しました

use Carp;
...
croak "Invalid options";

生産する

Invalid options at myscript.pl line 47
    main::prepare_output_directory() called at myscript.pl line 546

Invalid optionsでは、どうすれば他に何も持たずに死ぬことができますか?

おまけの質問: への実際の呼び出しが 49 行目croakにあるのに、エラーが 47 行目にあると教えてくれるのはなぜですか?croak

4

1 に答える 1

20

文字列の最後に改行を入れるだけdieです:

die "Invalid options\n";

これにより、エラーの場所がメッセージに追加されなくなります。

于 2010-08-29T05:41:01.217 に答える