在perl中使用错误但没有堆栈跟踪的正确方法是什么?

时间:2010-08-29 05:35:02

标签: perl error-handling die

我正在编写一个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行?

1 个答案:

答案 0 :(得分:18)

只需在die字符串末尾添加换行符:

die "Invalid options\n";

这样可以防止错误的位置被附加到您的邮件中。