Couple of possibilities besides ones that have already been noted by BrowserUk and Corion:
- You may be Suffering from Buffering - i.e., you may well be executing the program, but trying to process its output before it actually gets there.
- Is the executable actually where you think it is? I.e., is it actually in 'C:/'?
- Is the output of 'test.exe' going to STDOUT (which would be captured in your array) or STDERR (which would not)?
You can cut through most of this by making definitive tests. E.g., create a CGI executable that tests a known working command (untested but should work):
#!/usr/bin/perl -w
use strict;
# Enable all the warnings
use CGI::Carp qw/fatalsToBrowser warningsToBrowser/;
use CGI qw/:standard/;
# Turn off buffering (possibly unnecessary depending on Perl version,
# but can't hurt)
$|++;
# Get the date
my $date = qx{date /t};
print header, start_html, p($date), end_html;
Run this from the command line; then, try it via your server and browser. Based on the output, you should be able to easily decide in which direction the problem lies.
--
Human history becomes more and more a race between education and catastrophe. -- HG Wells
|