I tend to agree. There is no 'die' statement in the whole script so I suspect that the OS (Windows 2000 server) tries and fails to run the PERL script and returns the value 255.
-Stuart. | [reply] |
There is no 'die' statement in the whole script
The thing is that there doesn't have to be a die statement or an explicit exit(255) in the script to get an exit value of 255. But something must be setting that value. As a (somewhat ridiculous) example, if you have a C compiler you could compile the following C program into 'try.exe':
int main(int argc, char * argv[])
{
return 255;
}
And then you could run the following perl script:
use warnings;
my $ret = system("try.exe");
print $ret >> 8, "\n", $? >> 8, "\n";
You would find that produces as output:
255
255
In that perl script, there's no die(), no mention of "255" and, in fact, nothing even failed - yet the 8 high bits of $? were set. (Hopefully, you don't have an executable that's running successfully and returning 255.)
How do you find out what the exit code is ?
Is there a 'print $exitcode;' in the script ? ... or a 'print $? >> 8;' ? ... If we know the means by which you are being made aware of the exit value, then that might help with our speculations.
Cheers, Rob | [reply] [d/l] [select] |