package dbObject; my is_connected=0; # important... my $dbh=undef; sub connect { | connection foo here... } sub prepare { my ($self,$sql) = @_; if ( ! is_connected) $self->connect; $self->{sth} = $dbh->prepare(....); } 1; package myTable; use vars qw / @ISA /; use dbObject; @ISA = qw/ dbObject /; #etc. 1;