use Devel::Symdump; my $obj = Devel::Symdump->rnew( $package_name ); my @methods = $obj->functions(); # if you are sure private methods only start with underscore... my @public_methods = grep {$_ !~ /^_/} @methods; #### use Class::Inspector; my $methods = Class::Inspector->methods( $package_name ); my $public_methods = Class::Inspector->methods( $package_name, 'public' );