in reply to Differing Behavior as CGI vs. Command Line

I was trying to fix some code last night and had a similar experience. The CGI version had some problems and I added a few print STDERR lines so I could run the script from the command line, redirect the output to a dummy file, and read what was being printed.

The command line version never entered the subroutines I was expecting it to. It took me a while to figure out that the difference was the CGI was getting a bunch of empty parameters in the URL and I was leaving those out of the command line version. For example, the URL said:

http://localhost/cgi-bin/script.pl?param1=apple&param2=&param3=

While, at the command line, I was entering:

perl -w script.pl param1=apple > foo

I don't know if that could be what's happening in your case, but it hung me up for a while. Once I added the empty parameters to the command line, the print statements told me what I needed to know.

Hope that helps.