On Tue 01 Apr 2008, Paul Querna wrote:
> William A. Rowe, Jr. wrote:
> > -0.99 - agreed.  Perl is perfectly happy having <perl> blocks as modular
> > behaviors... I've noticed a trend in the last few years of building on
> > the core (and folks rightfully accused me of growing mod_proxy core when
> > new directives are rightfully part of mod_proxy_{whatever}).
>
> Yes, but the root of the problem even with <perl> blocks is that they
> have almost no way to change the behavior of existing modules -- like
> you can via configuration -- and instead for the most part, they
> reimplment entire C modules in Perl, or any other language, rather than
> binding to the configuration, and change that based on some other inputs.

I disagree. In the mod_perl API you can almost entirely configure a single 
request. You can hook maptostorage and add there directives for other modules 
via $r->add_config. Anything that can be configured in .htaccess or 
<Location> can be done that way as well. One can even change DocumentRoot 
(prefork-only) for a single request. The PerlMapToStorageHandler can then 
decide whether to skip the standard maptostorage (directory walk and file 
walk) or not. It would be good for such a perl-configured request to be able 
to skip the location-walk that follows maptostorage. But if the admin wants 
to do that he can simply avoid <location> blocks.

You cannot add virtual servers on the fly or redirect error_log. But I don't 
expect that to become feasible in the new config language since those are 
things that are done at server startup.

> Then the existing configuration file, a new lua system, or anything
> else, could be written in terms of that, rather than the current system
> where each language reinvents the modules it wants to control.

I agree that a configuration language like lua is good but it doesn't 
necessarily have to be in core. It can be a module as mod_perl shows.

Torsten

Reply via email to