#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;
my @return;
eval {
local $SIG{ALRM} = sub { die "alarm\n" }; # NB: \n required
alarm 5;
@return = `./test.pl`;
alarm 0;
};
if( $@ ) { # CASE: Command timed out
die unless $@ eq "alarm\n"; # propagate unexpected errors
}
else { # CASE: Did *not* timeout
}
print Data::Dumper->Dump([\@return],['return']);
####
#!/usr/bin/perl
print "Foo\n";
sleep 2;
print "Bar\n";
sleep 3;
print "Foobar\n";
####
$return = [];