chromatic has it exactly. I'd like to add that if you wish to add other functions, "transparently," to the returned object, you probably want to check out delegation as a design. Class::Delegation has some things to make things simple but it isn't required for that.
Comment on Re: Problem creating a singleton wrapper around DBI