http://qs1969.pair.com?node_id=7251


in reply to mysterious backticks/system() behavior in CGI script

Hmm. Well, this may seem like a silly question, but are you sure that the PS file exists when run as a CGI script? How does that PS file get there, after all? That's not really apparent from your code.

So I'd put in a

print "PS file doesn't exist!" unless -e $image_output . ".ps";
Perhaps also print out your environment and see if anything looks weird or wrong.

Also, check the $? variable after you use the backticks. From perlvar:

The status returned by the last pipe close, backtick (``) command, or system() operator. Note that this is the status word returned by the wait() system call (or else is made up to look like it). Thus, the exit value of the subprocess is actually ($? >> 8), and $? & 255 gives which signal, if any, the process died from, and whether there was a core dump. (Mnemonic: similar to sh and ksh.)
Also, you may want to check out PerlMagick, which provides a Perl interface to ImageMagick. So, presumably, you won't have to bother yourself with running system commands. One of Randal Schwartz's Web Techniques columns uses PerlMagick to create thumnbails on the fly, so you might take a look at that.