我正在編寫一個perl腳本,並且在我正在檢查用戶在命令行中提供的選項的部分中,我希望退出並解釋錯誤解釋選項的錯誤。在這種情況下,不需要堆棧跟蹤來處理此錯誤消息。那麼什麼是最好的方式與一個錯誤信息,但沒有堆棧跟蹤或調試信息死亡?在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
而沒有別的?
獎勵問題:爲什麼croak
告訴我,錯誤在第47行,當實際呼叫croak
在第49行?
回覆:獎金問題,爲您的呱呱聲顯示更多的上下文? – ysth 2010-08-29 06:06:21
沒關係獎金問題。我只是想知道是否可能有一些普遍的原因。 – 2010-08-29 08:14:20
對於你的獎勵問題:'croak'試圖從調用者的角度報告行號。閱讀[Carp](http://perldoc.perl.org/Carp.html)模塊的文檔。 – 2010-08-29 14:35:11