如何在Perl中获取回溯信息?

14

2
重复问题:https://dev59.com/NHRB5IYBdhLWcg3wCjnO。另外,https://dev59.com/RnI-5IYBdhLWcg3wZ3YR和https://dev59.com/wXNA5IYBdhLWcg3wa9Gp。 - mob
2个回答

24

将以下代码添加到您的脚本顶部:

use Carp 'verbose';
$SIG{ __DIE__ } = sub { Carp::confess( @_ ) };

它会在所有致命错误时创建一个堆栈跟踪。


4
您可以使用 $SIG{__DIE__} = \&Carp::confess; 这行代码,也可以这样写。请注意在翻译过程中尽可能保留原文的语义和结构,使翻译更加通顺易懂。 - Leon Timmermans
1
这个答案确实比被认为是重复的那个问题的答案要好得多。 - EMiller

12

4
Carp::Always比操作sigdie要好得多,因为你可以从命令行启用它。通过 perl -MCarp::Always my_script 命令非常方便。 - daotoad
1
我在脚本的第一行加入了 #!/c/Perl/bin/perl -MCarp::Always -w。然后它显示了 Too late for "-MCarp::Always" option at ... line 1. - Evgeni Sergeev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接