package SomeDatabaseStuff; sub my_funny_sql{ my ($dbh) = @_; $dbh->do('my great query'); } #### my_funny_sql($dbh); #### $dbh->SomeDatabaseStuff::my_funny_sql(); #### $dbh->SomeDatabaseStuff::my_funny_sql ( 'some parameter', 12 , 34 ); #### package MoreDatabaseStuff; @MoreDatabaseStuff::ISA = qw( SomeDatabaseStuff); # no subroutines here $dbh->MoreDatabaseStuff::my_funny_sql(); # ends up being dispatched properly # to the sub in the parent SomeDatabaseStuff #### my $dbh = DBI->connect('....'); $dbh->SomeDatabaseStuff::my_funny_sql;