Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:
I'm trying to create a singleton wrapper around the Perl DBI class, but getting problems.
I think I'm missing something to specify the correct class.
Here is the code i'm using:
package Singleton::DBI; use conf::SiteConfig; use DBI qw/ :sql_types / ; # Database interface use vars qw( @ISA); @ISA = qw(DBI); my $oneTrueSelf; sub instance { $oneTrueSelf ||= (shift)->new(); } sub new { my $type = shift; # get necessary config info my $dbuser = conf::SiteConfig::get_conf ( 'dbuser' ); my $dbpass = conf::SiteConfig::get_conf ( 'dbpass' ); my $dbname = conf::SiteConfig::get_conf ( 'dbname' ); my $dbserv = conf::SiteConfig::get_conf ( 'dbserv' ); # Build up DBI connection string. my $datasource = 'dbi:mysql:'.$dbname; $datasource .= "\;host=$dbserv" if ( $dbserv ); # Connect my $this = DBI->connect ( $datasource, $dbuser, $dbpass ); return bless $this, $type; } 1;
The error I see is:
Can't locate auto/Singleton/DBI/selectrow_a.al ...
I suspect that I'm not modify the ISA type properly, so that the returned instance of Singleton::DBI is not treated identically as a DBI object, but I'm a little unclear on how inheritance works in Perl.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Problem creating a singleton wrapper around DBI
by chromatic (Archbishop) on Aug 23, 2005 at 00:55 UTC | |
by brian_d_foy (Abbot) on Aug 23, 2005 at 03:56 UTC | |
by skx (Parson) on Aug 23, 2005 at 04:23 UTC | |
|
Re: Problem creating a singleton wrapper around DBI
by diotalevi (Canon) on Aug 23, 2005 at 02:58 UTC | |
by skx (Parson) on Aug 23, 2005 at 04:24 UTC | |
|
Re: Problem creating a singleton wrapper around DBI
by adrianh (Chancellor) on Aug 23, 2005 at 08:54 UTC | |
by eric256 (Parson) on Aug 23, 2005 at 20:37 UTC | |
|
Re: Problem creating a singleton wrapper around DBI
by danmcb (Monk) on Aug 23, 2005 at 11:37 UTC | |
by danmcb (Monk) on Aug 23, 2005 at 11:40 UTC |