#! perl -slw use strict; use Data::Dump qw[ pp ]; use Config; $|++; my @signames = split ' ', $Config{ sig_name }; eval qq[ \$SIG{ $signames[ $_ ] } = sub{ warn qq[SIG $_ received\n] }; ] for 1 .. 21; pp \%SIG; 1 while sleep 1; __END__ c:\test>sigtest 2>log ## typed ^C and then ^break and then closed the console C:\test>type ..\log do { my $a = { ABRT => undef, ALRM => sub { ... }, BREAK => sub { ... }, CHLD => sub { ... }, CLD => 'fix', CONT => undef, FPE => sub { ... }, HUP => sub { ... }, ILL => sub { ... }, INT => sub { ... }, KILL => sub { ... }, NUM05 => sub { ... }, NUM06 => sub { ... }, NUM07 => sub { ... }, NUM10 => sub { ... }, NUM12 => sub { ... }, NUM16 => sub { ... }, NUM17 => sub { ... }, NUM18 => sub { ... }, NUM19 => sub { ... }, NUM24 => undef, PIPE => sub { ... }, QUIT => 'fix', SEGV => sub { ... }, STOP => undef, TERM => sub { ... }, }; $a->{CLD} = $a->{CHLD}; $a->{QUIT} = $a->{BREAK}; $a; } SIG 2 received SIG 21 received ^C