package Logger; sub new { my $self = ... ... $SIG{__DIE__} = sub { my $msg = shift; $self->add($msg); die $msg; }; return $self; } #### package Logger; our @instances; sub new { my $self = ...; ... push @instances, $self; return $self; } $SIG{__DIE__} = sub { my $msg = shift; $_->add($msg) for @instances; }