Hey mod_perl users/developers,
In short what I think we need is for the modperl2 perl-script
configuration directive to automagically load the Apache::compat
layer, please read below for why.
----
I am working on the Hello World benchmarks to get them running
against mod_perl2 so we can get some numbers comparing mod_perl1
against it, and meanwhile having to port to Apache2/mod_perl2
for the first time, in this case all of the benchmarks.
What struck me odd was that even the simplest of handlers would
not run directly under mod_perl/1.99_05-dev, as in:
sub handler {
my($r) = shift;
$r->content_type('text/html');
$r->send_http_header();
$r->print('Hello ');
$r->print('World');
200;
}
In this case the error was about content_type() not being implemented
which I could fix by adding:
use Apache::compat;
If it is the case that even the most trivial of applications
need Apache::compat, then why not load the Apache::compat layer
automatically? If performance is an issue, or code bloat or
what not, then perhaps *Apache::compat* layer could be added
only in case of using the *perl-script* config directive,
instead of the new modperl directive.
With the differences between the new modperl directive & perl-script,
it is clear that the latter is meant for backwards compatibility anyway, so
why not go the extra mile & load Apache::compat? At the very least, it
will probably save the thousands of mod_perl modules out there from
having to add that one "Apache::compat" line to their code.
& its not even that easy, in that to keep backwards compatibility
with old modperl 1.x code, we have to add
eval "use Apache::compat;"
instead! I am actually already doing this now for the modules
that I am trying to get to work with both mod_perl1 and mod_perl2
Thanks for the great work so far, and benchmarks will be forthcoming.
Regards,
Josh
________________________________________________________________
Josh Chamas, Founder phone:925-552-0128
Chamas Enterprises Inc. http://www.chamas.com
NodeWorks Link Checking http://www.nodeworks.com