http://www.perlmonks.org?node_id=105405

MrCromeDome has asked for the wisdom of the Perl Monks concerning the following question:

Hello everyone,

I am totally stumped with this one:

I have virtually identical Perl/Apache setups here at my office. On my development machine (Win2k Professional), I have ActiveState Perl and Apache 1.3.19 running, and on my web server (NT Server 4.0), I also have ActiveState Perl and Apache 1.3.19 running. When I run a certain script on my development machine, it runs ok and gives me the results that I expect. When I try to run the same script on the web server, Dr. Watson appears on the server console saying perl has performed an illegal operation, and the script then times out in the browser.

I started to do a little digging in the server error log (on the NT box), where I found the following error:

[Thu Aug 16 09:19:18 2001] [error] [client 192.168.0.28] [Thu Aug 16 0 +9:19:18 2001] d:\www\cgi-bin\view.cgi: Use of uninitialized value in +hash element at d:/Perl/lib/CGI.pm line 547.
I then went back to check the error logs on my development box, and lo-and-behold, the same error appears. I started digging into CGI.pm and discovered that this error appears in the sub parse_params, specifically on the following line:
push (@{$self->{$param}},$value);
If I'm reading this correctly, it seems like CGI is having trouble dealing with the parameters I'm giving/getting from it (which bothers me - this script has always handled them ok before this. . . ). What also bothers me is why it dies on the NT box but works fine on my desktop.

I can post the code if it will be of some help. . . it is quite lengthy however (which is why it isn't posted here). I'm not sure where to go from here. . . I already stepped it through the debugger and didn't see anything out of the ordinary (though I might not know quite what it is I'm looking for). I have warnings enabled, am using strict, and am also using CGI::Carp. Any advice is very greatly appreciated.

Thanks in advance,
MrCromeDome