perl-modperl mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Fred Moyer <>
Subject Re: read query params
Date Fri, 10 Feb 2006 05:32:03 GMT
M J wrote:
>     I’m very disappointed  regarding the mod_perl 2 documentation and changes that
have been made.
>       I’m  searching for several hours already how can I read the query params using
only  mod_perl2 API.
>       I had  problem installing libapreq2-2.06-dev and I’m tired to debug that library.
>       I want to  use mod_perl2 API to do the simplest job possible: read the parameters
sent using  GET or POST. I am looping around and I did not find a clear example or  explanation
regarding this.
>       I can use  $r->args() but then I need to split that string in order to get my
param  value. I doubt that this is a good solution.

The reference you are looking for is here:

It's buried a bit deep, so maybe a cooking recipe or two could be added 
- this seems to be a common issue for mp2.

If you can't install libapreq2, there are still several options.  You 
could use CGI which has compatible with mod_perl2.  If you are looking 
for some sample code maybe this will work (untested).  It logs the 
arguments received to the apache error log.


Your request:


or the equivalent POST


In your httpd.conf:

LoadModule perl_module modules/
PerRequire "/path/to/"
<Location /postaway>
    SetHandler perl-script
    PerlResponseHandler My::CGI



use strict;
use warnings;

use lib 'path/to/my/lib'
use CGI;
use Apache2::Const ();
use Apache2::Log   ();
use Apache2::RequestRec ();  # Not sure if you need the next two 		 
                         # explicitly but I think CGI may require it
use Apache2::RequestUtil ();


In lib/My/

package My::CGI;

use strict;
use warnings;

use Apache2::Const -compile => qw( OK );
use Apache2::Log;
use Apache2::RequestRec;
use Apache2::RequestUtil;
use CGI;

sub handler {

   my $r = shift;

   my $cgi = CGI->new;
   my $q = $cgi->query;

   foreach my $name ( $q->param ) {
     $r->log->info("Passed a param named $name with value " .

   return Apache2::Const::OK;

>       P.S.
>       With the  modification that you made for mod_perl2 you will loose a lot of perl
 programmer and I doubt that you will get new ones.
>       M J

View raw message