On Wed, 2004-04-14 at 21:28, dorian wrote:
> > yes.  from DBI.pm:
> 
> ah, sneaky.

But totally unnecessary.  That voodoo is in the DBI code because the
intention of Apache::DBI is to change the behavior of DBI without
altering the client code in any way.  If you have control over the
client code, you can just use a singleton pattern, or a plain old
global.


> this seems to work:
> 
> package XMLTest;
> 
> use strict;
> use warnings;
> 
> use XML::LibXML;
> 
> our $XML;
> 
> *_new = \&XML::LibXML::new;
> *XML::LibXML::new = \&new;
> 
> sub new {
>   return $XML ||= _new(@_);
> }

It would work just as well if you made that in your own package and just
had it call XML::LibXML instead of mucking around with some other
module's internals.  All you have to do is change the place in your
client code where you call XML::LibXML->new() to call this other package
instead.

- Perrin


-- 
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