Thomas Hilbig wrote:
Also, the mp2 User's Guide (section 10.9.1) says
CGI.pm now takes $r as an argument to its new()
function. What benefit is this? Is it required?

For the most part its optional.
You may need to look at PerlGlobalRequest


http://perl.apache.org/docs/2.0/user/config/config.html#C_GlobalRequest_

I'm still confused why this is optional in CGI.pm. Does it save some cycles by avoiding CGI.pm having to
sniff around for the Apache requestor?
From CGI.pm::new():

....
 if (ref($initializer[0])
      && (UNIVERSAL::isa($initializer[0],'Apache')
          ||
          UNIVERSAL::isa($initializer[0],'Apache2::RequestRec')
         )) {
    $self->r(shift @initializer);
  }
....
if ($MOD_PERL) {
    if ($MOD_PERL == 1) {
      $self->r(Apache->request) unless $self->r;
      my $r = $self->r;
      $r->register_cleanup(\&CGI::_reset_globals);
    }
    else {
      # XXX: once we have the new API
      # will do a real PerlOptions -SetupEnv check
      $self->r(Apache2::RequestUtil->request) unless $self->r;
      my $r = $self->r;
      $r->subprocess_env unless exists $ENV{REQUEST_METHOD};
      $r->pool->cleanup_register(\&CGI::_reset_globals);
    }
    undef $NPH;
}
....

After CGI->new() or CGI->new($r) is called from here on out internall it will just use $self->r whenver an Apache2::Request object is needed. I'm not entirely sure it will say you speed passing or not passing it. The only benefit I see is that you could pass a subclassed version in.

Though I may be missing something.

HTH



--
END
------------------------------------------------------------
    What doesn't kill us can only make us stronger.
                Nothing is impossible.
                                
Philip M. Gollucci ([EMAIL PROTECTED]) 301.254.5198
Consultant / http://p6m7g8.net/Resume/
Senior Developer / Liquidity Services, Inc.
  http://www.liquidityservicesinc.com
       http://www.liquidation.com
       http://www.uksurplus.com
       http://www.govliquidation.com
       http://www.gowholesale.com

Reply via email to