use Sys::SigAction qw( set_sig_handler ); eval { my $h = set_sig_handler( 'ALRM' ,sub { kill 15, $opened; # <-- die "TIMEOUT\n"; }, { ...