sub find_methods { my $pack = shift; my $tbl = shift || {}; no strict 'refs'; my ($key, $val); while (($key, $val) = each %{"${pack}::"}) { $tbl->{$key}++ if defined *{$val}{CODE}; } if (@{"${pack}::ISA"}) { find_methods($_, $tbl) for (@{"${pack}::ISA"}); } sort keys %$tbl; }