Hmm ... but nothing for the old-fashioned plain blessed packages?..
I think you can do better (for example recurse into the classes @ISA, and filter out methods beginning with an underscore (which are private by convention), DESTROY etc.), but there are conceptual limits.
Perl doesn't have different declarations for subs and methods, so it's impossible to distinguish these two automatically.
Maybe there are better solutions to your problem. For example the thread Runtime introspection: What good is it? discusses (among a variety of other things) possible alternatives to to introspection.