CPAN RT

Given a class name,
print out all methods available to that class.
It does this by loading in the class module,
and walking its symbol table and those of its ancestor classes.
A regular method call shows up simply:

$ pmeth IO::Socket | grep '^con'
confess
configure
connect
connected

But one that came from else where is noted with one or more "via" notations:

DESTROY via IO::Handle
export via Exporter via IO::Handle

A base-class method that is unavailable due to being hidden by a close derived-class method by the same name (but accessible via SUPER::) is indicated by a leading "[overridden]" before it:

[overridden] new via IO::Handle

Constants declared via constant have a leading "[constant]" added to the output, but XS define's are not yet so flagged.

Perl makes no distinction between functions, procedures, and methods, nor whether they are public or nominally private, nor whether a method is nominally a class method, an object method, or both. They all show up as subs in the package namespace. So if your class says use Carp, you just polluted your namespace with things like croak() and confess(), which will appear to be available as method calls on objects of your class.

This is free software; you can redistribute it and/or modify it under the terms of either: (a) the GNU General Public License as published by the Free Software Foundation; either version 1, or (at your option) any later version, or (b) the Perl "Artistic License". (This is the Perl 5 licensing scheme.)

Please note this is a change from the original pmtools-1.00 (still available on CPAN), as pmtools-1.00 were licensed only under the Perl "Artistic License".