Perl Singleton Objects
This is a quick introduction to perl Singleton objects. A singleton object is an object that is only instantiated once throughout an application.Singleton Uses
Singletons can be used for many things. If you only want one database connection for a particular application, or a limited number of connections a singleton database class can handle managing your open connections.How to implement
The following is an example of how to put together a database object that opens a database connection and returns an existing connection to the caller.This allows your userid/password to be set in a single location as well. You don't have to have every piece of code that accesses the database use userid/password. Just use the DBConnector object and then issue your database calls.package DBconnector; my $singleton; sub new { my $class = shift; $singleton ||= bless {}, $class; } sub connect { my $self = shift; if (exists $self->{dbh}) { $self->{dbh}; } else { my $connection = "dbi:mysql:host=$self->{host} \ dbname=$self->{name}"; $self->{dbh} = DBI->connect($connection, \ $self->{user},$self->{password}); } }
Summary
There are many ways to use singletons. This is just a basic example, but provides what is needed to create a singleton object.
|
---|
Replies are listed 'Best First'. | |
---|---|
•Re: Perl Singletons
by merlyn (Sage) on Jul 19, 2002 at 19:52 UTC | |
by Aristotle (Chancellor) on Jul 19, 2002 at 20:44 UTC | |
Re: Perl Singletons
by gav^ (Curate) on Jul 19, 2002 at 23:16 UTC | |
Re: Perl Singletons
by atcroft (Abbot) on Jul 23, 2002 at 17:16 UTC |
Back to
Tutorials