use Net::OpenSSH; my $ssh=Net::OpenSSH->new($server); my $line = $ssh->capture(perl => -e => <<'EOC', 3, 'ls -ltr'); $s = shift; $SIG{ALRM} = sub {kill INT => $p}; exec(@ARGV) unless $p = fork; alarm $s; waitpid $p, 0; EOC