#!/usr/bin/perl use strict; use warnings; use IPC::Run qw( run timeout ); my $timeout=5; my $output=''; my @cmd=('perl', '-e', 'for(0..3){print qq(TEST $_\n); warn(qq(TTTT $_\n)); sleep(1); }'); eval{ run(\@cmd, \undef, \$output, '2>&1', timeout( $timeout )); }; if($@) { warn("PROCESS KILLED!\n"); $output=''; } if($output) { print "OUTPUT:\n"; print $output; } else { print "NO OUTPUT!\n"; }