#!/usr/bin/perl use strict; my $pid = 0; my $cmd = $ARGV[0]; eval { my $process; local $SIG{ALRM} = sub { kill 'INT', $pid; close $process; die "timeout\n" }; alarm( 5 ); $pid = open $process, "$cmd |"; while (<$process>) { chomp ($_); print $_, "\n"; } };