#!/usr/bin/perl -w tie %SIG, Foo; alarm(2); $SIG{ALRM} = sub { print "Alarm called!\n" }; sleep 10; package Foo; sub TIEHASH { my $foo = {}; print "Hash tied.\n"; return bless $foo, shift; } sub STORE { return if $REENTRANT; my ($this, $key, $value) = @_; print "Stored $value in \$SIG{$key}.\n"; return unless($key eq 'ALRM'); # Ignore everything but ALRM's ++$REENTRANT; $SIG{ALRM} = sub { print "Ugly Hack(tm) method.\n" }; --$REENTRANT; #$_[1] = sub { print "Parameter change method.\n" }; #return sub { print "Return value method.\n" }; }