"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