use POSIX; sub hup { print "hup(@_)\n"; for my $k (sort keys %{$_[1]}) { print "$k $_[1]->{$k}\n"; } } my $newaction=POSIX::SigAction->new(\&hup, 0, SA_SIGINFO); sigaction(SIGHUP, $newaction); print "I am $$\n"; kill HUP, $$;