当你引用一个undef值而不仅仅是警告时,你如何让Perl停下来并给出一个堆栈跟踪?这似乎use strict;
不足以达到这个目的.
use warnings FATAL => 'uninitialized'; use Carp (); $SIG{__DIE__} = \&Carp::confess;
第一行使警告致命.当程序死亡时,接下来的两个会导致堆栈跟踪.
而不是%SIG
其他人提出的凌乱摆弄,只是和完成.use Carp::Always
请注意,只需运行它就可以将模块注入脚本而无需修改源代码perl -MCarp::Always
; 此外,您可以将PERL5OPT
环境变量设置为-MCarp::Always
加载它,甚至不更改脚本的调用.(见perldoc perlrun
.)