EG/DB.pm EG/DB/ EG/DB/Access.pm EG/DB/Clients.pm EG/DB/Vendors.pm EG/DB/Employees.pm EG/Example.pm #### package EG::DB.pm; use DBI; sub new { db connection happens here } sub commit {...} package EG::DB::Access.pm use base 'EG::DB::Clients'; use base 'EG::DB::Vendors'; use base 'EG::DB::Employees'; package EG::DB::Clients; use base 'EG::DB'; sub get_client_id_for_username { ... } package EG::Example; use EG::DB::Access; my $dbh = EG::DB::Access->new(); my $client_id = $dbh->get_client_id_for_username($client_username); #### EG::Example->get_client_id_for_username() #### EG::DB::Access (no match) EG::DB::Clients (no match) EG::DB::Vendors (no match) EG::DB::Employee (match) #### EG::DB::Access (no match) EG::DB::Clients (no match) EG::DB::Vendors (no match) EG::DB::Employee (no match) EG::DB (match)