in reply to inheritance not working as expected
One possible way to handle this is to push the class of the returned value from connect on your own @ISA:
package mydbh; @ISA = qw( DBI ); require DBI; use strict; sub new { my( $class, $dns, $username, $password ) = @_; my $self = DBI->connect( $dns, $username, $password ); push (@ISA, ref($self)) if (not grep { $_ eq ref($self) } @ISA); return bless $self, $class; }
Also, I don't like dual-mode constructors (i.e. the bless $self, $class||ref $class stuff). Usually, you want to do something different if you're cloning an existing object (i.e. not just copy its class). In this case, you would probably want to clone the handle.
|
---|