run \@cmd, \$in, \$out, \$err, timeout( 3, exception => 'timeout' ); #### #!/usr/bin/perl -w use strict; use warnings; use CGI qw/:standard/; use CGI::Carp qw/fatalsToBrowser warningsToBrowser/; use IPC::Run qw/run timeout/; if (param('in')) { $in = param('in'); print p("Input: $in\n"); } else { undef $in; } my @cmd = ( "/data2/tmp/a.exc" ); eval { local $| = 1; run \@cmd, \$in, \$out, \$err, timeout( 3, exception => 'timeout' ); }; print "Timed out...\n\n" if $@ =~ /timeout/; print "ERROR: $err\n\n" if $err; chomp($out) && print "Output: $out\n" if $out; print "Expected output: ", param('out') if param('out');