in reply to Re^2: How can I avoid creating two instances of the same object
in thread How can I avoid creating two instances of the same object

Erm, you've just muddied the waters a good bit. Unless Company is a subclass of User why would you be able to call a method from the later on the former?

At any rate, it looks like you might be more interested in Class::DBI (which I should have mentioned in the first place). Define your DBI connection parameters in a base class and then all of your table classes inherit from that and will do the right thing with regards to sharing a database handle.