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呢?

额外的问题:为什么croak告诉我错误在第 47 行,而实际调用croak在第 49 行?

4

1 回答 1

20

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

die "Invalid options\n";

这将防止错误的位置被附加到您的消息中。

于 2010-08-29T05:41:01.217 回答