A) Are you using mod_perl or not?
Yes. I've been reading the CGI::Simple docs carefully, and you probably know what it says about working alongside mod_perl:
This module uses Selfloader and the __DATA__ token to ensure that only code that is used gets complied. This optimises performance but means that it will not work under mod_perl in its default configuration. To configure it to run under mod perl you would need to remove two lines from the module. use Selfloader;
....
__DATA__
Those two lines are commented in the source code of the module I'm using, so I guess that's enough. As an added bonus, here are the Apache config file and mod_perl startup file I'm using.
B) The error message from CGI::Simple seems pretty explicit to me. The content-length was 31 but it couldn't read any data from STDIN. This is probably because you can only read data *once* from STDIN, so if anything has read the data from STDIN first, CGI::Simple won't then also be able to read the data.
OK, makes sense
GET type requests don't work like this, as reading the appropate %ENV variable doesn't reset anything. So check to make sure nothing is reading the STDIN before you do -- you might consider scripts started by mod_perl related directives?
As far as I can tell, I have none, except that mod_perl_startup.pl I pasted up there.
C) If you are using mod_perl, I think you want Apache::Request or something similar.
OK, will take a look at that and give it a try. Thanks for the help.
| [reply] [d/l] [select] |
I'm running under mod_perl and I'm quite sure nothing is reading STDIN before my script as the POST requests under CGI.pm run OK, but don't run under CGI::Simple.
CountZero "If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law
| [reply] |