I've kinda moved out of CGI since I started using modperl for primarily 2 reasons: speed and functionality.

You'd see that Apache2::Request exposes more stuff, which you can (lazily) use. Unless you are looking for some backward compatibility to tradditional CGI programming, why not embrace the entire modperl library?

Colin Wetherbee wrote:
Hello!

It's been about four years since I've used mod_perl to any great extent, and I'm afraid I'm somewhat rusty. I'm trying to create a handler that can parse CGI parameters, but I'm unsure of the most modern way of doing that.

I know Apache2::Request is supposed to be able to grab CGI parameters; is that "better" than using CGI.pm? How about these APR modules that seem to wind their way into the framework?

When I tried creating an Apache2::Request->new($r) object to use to get CGI parameters, I found that everything I tried to print after the object's instantiation wouldn't show up anywhere. All the pages served were zero bytes, and I couldn't even print to STDERR.

Here's a simple handler I wrote. It works, but I'm afraid I might be doing something incorrectly by mixing Apache2 and CGI. I'm wondering how it would look if someone who was more up-to-date on mod_perl wrote it? :)

# BEGIN CODE BLOCK
use Apache2::Const -compile => qw(OK);
use CGI;

sub handler
{
  my ($r) = @_;

  my $cgi = CGI->new($r);

  $r->content_type('text/html');

  if (defined $cgi->param('foo'))
  {
    print 'foo: ' . $cgi->param('foo') . "<br />\n";
  }

  return Apache2::Const::OK;
}
# END CODE BLOCK

Thanks. :)

Colin

Reply via email to