NAME
pmeth - show a Perl class's methods
DESCRIPTION
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'confessconfigureconnectconnected
But one that came from else where is noted with one or more "via" notations:
DESTROY via IO::Handleexport 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.
EXAMPLES
$ pmeth IO::SocketAF_INETAF_UNIXINADDR_ANYINADDR_BROADCASTINADDR_LOOPBACKINADDR_NONESOCK_DGRAMSOCK_RAWSOCK_STREAMacceptbindcarpconfessconfigureconnectconnectedcroakgetsockoptimportinet_atoninet_ntoalistennewpack_sockaddr_inpack_sockaddr_unpeernameprotocolrecvregister_domainsendsetsockoptshutdownsockaddr_insockaddr_unsockdomainsocketsocketpairsocknamesockoptsocktypetimeoutunpack_sockaddr_inunpack_sockaddr_unDESTROY via IO::HandleSEEK_CUR via IO::HandleSEEK_END via IO::HandleSEEK_SET via IO::Handle_IOFBF via IO::Handle_IOLBF via IO::Handle_IONBF via IO::Handle_open_mode_string via IO::Handleautoflush via IO::Handleblocking via IO::Handle[overridden] carp via IO::Handleclearerr via IO::Handleclose via IO::Handle[overridden] confess via IO::Handleconstant via IO::Handle[overridden] croak via IO::Handleeof via IO::Handleerror via IO::Handlefcntl via IO::Handlefdopen via IO::Handlefileno via IO::Handleflush via IO::Handleformat_formfeed via IO::Handleformat_line_break_characters via IO::Handleformat_lines_left via IO::Handleformat_lines_per_page via IO::Handleformat_name via IO::Handleformat_page_number via IO::Handleformat_top_name via IO::Handleformat_write via IO::Handleformline via IO::Handlegensym via IO::Handlegetc via IO::Handlegetline via IO::Handlegetlines via IO::Handlegets via IO::Handleinput_line_number via IO::Handleinput_record_separator via IO::Handleioctl via IO::Handle[overridden] new via IO::Handlenew_from_fd via IO::Handleopened via IO::Handleoutput_field_separator via IO::Handleoutput_record_separator via IO::Handleprint via IO::Handleprintf via IO::Handleprintflush via IO::Handlequalify via IO::Handlequalify_to_ref via IO::Handleread via IO::Handlesetbuf via IO::Handlesetvbuf via IO::Handlestat via IO::Handlesync via IO::Handlesysread via IO::Handlesyswrite via IO::Handletruncate via IO::Handleungensym via IO::Handleungetc via IO::Handleuntaint via IO::Handlewrite via IO::Handle_push_tags via Exporter via IO::Handleexport via Exporter via IO::Handleexport_fail via Exporter via IO::Handleexport_ok_tags via Exporter via IO::Handleexport_tags via Exporter via IO::Handleexport_to_level via Exporter via IO::Handle[overridden] import via Exporter via IO::Handlerequire_version via Exporter via IO::HandleVERSION via UNIVERSALcan via UNIVERSAL[overridden] import via UNIVERSALisa via UNIVERSAL
NOTE
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.
SEE ALSO
AUTHORS and COPYRIGHTS
Copyright (C) 1999 Tom Christiansen.
Copyright (C) 2006-2014 Mark Leighton Fisher.
LICENSE
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".