use Win32::Process::Info; my $pi = new Win32::Process::Info(); $SIG{INT} = sub { local $SIG{INT} = 'IGNORE'; @children = keys %{$pi->Subprocesses($$)}; @children = grep $$ != $_, @children; kill 1, @children; exit; };