我在Windows中編寫了一個perl應用程序,我正在使用一個調用perl腳本,並且有幾個分層的perl oo模塊。我想自定義perl處理死的方式。 我知道使用$ SIG {DIE}並使用「use subs die」,但是我可以只將它放入我的調用腳本中,並且現在期望現在,如果我的應用程序中的任何模塊只會經過此處理程序?我可以從我的調用腳本中全局覆蓋我的perl項目中的全局死亡?
我已經試過這樣的事情,但沒有奏效:
$SIG{__DIE__} = \&_death_handler;
use Mypackage;
my $obj = Mypackage->new();
$obj->init;
sub _die_handler {
print "I die handler\n";
}
mypackage中看起來是這樣的:
package Mypackage;
sub new {
.....
.....
}
sub init {
my $self = shift;
die "error\n";
}
這似乎只有當我打電話從調用腳本模工作,但是從Mypackage調用的死亡並沒有得到處理程序的處理。
@ikegami,OP所面臨的問題,我認爲,'__DIE__'處理程序是對錯字子程序的引用... – pilcrow