in reply to query for methods?

Here's a little routine I whipped up that should handle the @ISA path for a class. Mind, it still won't tell you about tricky additions to the method space such as auto-loaded methods that aren't pre-declared with "use vars", for example. In other words, you can fool it pretty easily but if you're using the code in a fairly plain environment, it should at least be helpful.

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; }

It assumes that the code behind the specified class has already been loaded. You call it as:

@methods = find_methods $classname;

You won't get duplicate names in the cases where a sub-class overrides a method previously defined in a parent. Recursion is your friend.

--rjray