package Sigmund; use base qw( Tie::Hash ); my $realSig= \%::SIG; sub TIEHASH { return bless {}, shift; } sub STORE { my( $self, $key, $value )= @_; my $prev= $realSig->{$key}; # Replace this next line with whatever you like: warn "Changing $key signal handler.\n"; $realSig->{$key}= $value; return $prev; } sub FETCH { my( $self, $key )= @_; return $realSig->{$key}; } *::SIG= {}; tie %::SIG, __PACKAGE__; 1;