我有一个模块需要在BEGIN块中进行一些检查.这可以防止用户在线下看到无用的消息(在编译阶段,在第二个BEGIN中看到).
问题是,如果我在BEGIN内部死亡,我抛出的信息就会被埋没
BEGIN失败了 – 编译中止了.但是我更喜欢死掉1,因为它可以被捕获.我应该只使用退出1还是我可以做些什么来抑制这个额外的消息?
#!/usr/bin/env perl use strict; use warnings; BEGIN { my $message = "Useful message,helping the user prevent Horrible Death"; if ($ENV{AUTOMATED_TESTING}) { # prevent CPANtesters from filling my mailBox print $message; exit 0; } else { ## appends: BEGIN Failed--compilation aborted at ## which obscures the useful message die $message; ## this mechanism means that the error is not trappable #print $message; #exit 1; } } BEGIN { die "Horrible Death with useless message."; }