package Mypackage; use Moose; use Exporter qw(import); use sigtrap 'handler' => \&signal_handler_kill, 'INT', 'ABRT', 'QUIT', 'TERM'; has status => ( isa => 'Str', is => 'rw' ); sub signal_handler_kill{ my $self_term=shift; my $self=shift; $self->status("killed"); $self->end; } sub end{ #do some clean up $self=shift; print $self->status."\n"; } 1; #### use Mypackage; my $obj = Mypackage->new({status=>"start"}); sleep 20;