"Perrin Harkins" <[EMAIL PROTECTED]> writes:

[...]

> Are you saying that using names like "Apache5::" would be a problem
> because of calls to class methods?  

Yup, I'm saying version numbers don't belong in the actual 
source code (package names, @ISA, whatever), for basically 
all the same reasons SQL statements don't belong there.  
It creates more portability & maintenance problems than it 
solves.

> In most cases, the OO interface hides that from users after they use a
> specific module, but it certainly could get ugly if modules need to 
> call Apache2::Foo->bar() or Apache2_2::Foo->bar().

Right, as would lots of other things like

    Foo->isa($_[1]) or die '$obj->method(@_), first arg is not a Foo";

that are commonplace within autogenerated code like XS.  APR::* 
is a fine example: we already have 2 incompatible libapr's in 
circulation (0.9.x, 1.x), and very soon there may be a third 
version (2.x) because some of apr's 64bit interfaces aren't 
quite right.  But APR:: will probably be source compatible
with all three libraries (it already is compatible with the
existing libapr's). Just as I don't want to see several 
BerkeleyDB modules on CPAN, I also don't want to see several 
APR::Table modules there either.

-- 
Joe Schaefer


-- 
Report problems: http://perl.apache.org/bugs/
Mail list info: http://perl.apache.org/maillist/modperl.html
List etiquette: http://perl.apache.org/maillist/email-etiquette.html

Reply via email to