В разделе «НАЧАЛО» моего модуля есть:
use sigtrap qw(handler shutdown normal-signals);
use sigtrap qw(die untrapped normal-signals stack-trace any error-signals);
Но когда sigtrap ловит INT и т. Д., То, что я получаю в моем закрытом сабвуфере, содержит только ловушку, а не дескриптор объекта. Нет $ self.
sub shutdown {
my $sig = shift || 'Nothing';
print "Got signal: $sig\n";
exit;
}
просто возвращает
Got signal: INT
Мой DESTROY get вызывается как раз вовремя и имеет доступ к дескриптору объекта, но, поскольку у меня не было доступа к дескриптору при выключении, я не смог его сохранить и понятия не имел, что это за сигнал.
Мне нужно знать, какую ловушку я получил, чтобы мой метод DESTROY мог регистрировать, что вызвало отключение.
Возможно, sigtrap здесь не лучший выбор. Мнения приветствуются.