Philip M. Gollucci wrote: > John D Groenveld wrote: > >> In message <[EMAIL PROTECTED]>, Geoffrey Young writes: >> >> >>> I've updated all of my mod_perl 2.0 CPAN modules so that they work >>> with the >>> latest mod_perl 2.0 release (RC5 aka 1.999_22) and Apache-Test 1.22. >>> here >>> >> >> >> For those of us supporting Apache 1 and 2, is this right? >> >> package My::Apache::Foo; >> >> >> >> use constant MP2 => eval { require mod_perl2; 1 } || 0; >> >> BEGIN { >> if (MP2) { >> require mod_perl2; >> require Apache2::Const; >> } else { >> require mod_perl; >> require Apache::Constants; >> } >> }
that's fine. note that the 'require mod_perl2' is redundant here, and not typically necessary anyway. >> >> John >> [EMAIL PROTECTED] >> >> > For performance and consistancy, you'd be better off using > > use constant MP2 => |$ENV{MOD_PERL_API_VERSION}| == 2 ? 1 : 0; > > or just use the ENV directly well, even without the abs signs that has a problem, namely what happens if mod_perl isn't present at all :) but if you're in a handler then that's a given... fwiw, the way CGI.pm ended up was like this: if (exists $ENV{MOD_PERL}) { if ($ENV{MOD_PERL_API_VERSION} == 2) { $MOD_PERL = 2; require Apache2::Response; require Apache2::RequestRec; require Apache2::RequestUtil; require APR::Pool; } else { $MOD_PERL = 1; require Apache; } } HTH --Geoff