On Mon, 2003-06-09 at 13:57, Shannon Eric Peevey wrote:
> Yeah, I've been messing with that, but it seems to me that I need 
> something similar to a preprocessor directive, where I can load the 
> appropriate "use MODULE" lines into the module bases upon which version 
> of modperl they have installed.  Is it possible to use the BEGIN {} 
> subroutine as this?

You don't need a preprocessor.  You can call require inside an if/else
conditional, unlike use() statements which run at compile time and skip
the conditional logic.

For example:

if ($mod_perl::VERSION >= 1.99) {
  require Apache2::Module;
  import Apache2::Module;
} else {
  require Apache1::Module;
  import Apache1::Module;
}

You can put that whole construct in a BEGIN block if you want to.  That
will make it run before the rest of the code in the current package.

- Perrin

Reply via email to