I was banging my head against a problem with mod_perl this afternoon. I am writing a very simple SOAP service (in fact its REST really but
After a while I managed to get a hint from mod_perl as to why it was eating the postdata that my SOAP::Lite client had sent :
[libapreq] unknown content-type: 'text/xml; charset=utf-8'. It didn't like 'text/xml' either.
I know the mod_perl and apache maintainers would love us all to move to Apache 2 and mod_perl 1.99999999 or whatever it is, but not bothering to update mod_perl to handle basic web service content types is really lame.
Anyway, there is a solution. 'use CGI;', get your parameters with '$cgi->Vars' and bobs your uncle. If Apache is so lame at handling mime-types that CGI.pm can handle then why not patch Apache::* based on the code in CGI. After all, one the great things about apache/mod_perl is that you have the power in perl to pull stunts in apache modules without having to recompile your apache or libraries (even without having to restart apache if you use the appropriate module and setting).