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.
In reply to Problem creating a singleton wrapper around DBI by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |