#!/usr/bin/perl -w use strict; use lib './lib'; use base 'LEOCHARRE::CLI'; use LEOCHARRE::PMSubs 'subs_defined'; our $VERSION = sprintf "%d.%02d", q$Revision: 1.3 $ =~ /(\d+)/g; my $o = gopts('pP'); $o->{p} ||=0; my $files = argv_aspaths() or warn('missing argument list') and exit; for (@$files){ showone($_); } exit; sub showone { my $abs = shift; if (scalar @$files > 1){ print "# [$abs]\n"; } my $subs = subs_defined($abs,$o->{p}); if ( $o->{P} ){ my $pod; map{ $pod.="=head2 $_()\n\n" } @$subs; print "\n@$subs\n\n\n$pod\n"; } else { printf "%s\n", join("\n", @$subs); } } =pod =head1 NAME pmsubs =head1 DESCRIPTION prints to screen all subs defined in a perl code file =head1 OPTION FLAGS -p show only public methods/subs, dont show subs starting with an underscore. -d debug on -v print version and exit -h help -P list all on one line, prep pod =head1 EXAMPLE USAGE pmsubs ./script.pl pmsubs ./lib/Module.pm pmsubs -p ./lib/Module.pm pmsubs -p ./lib/*pm =head1 AUTHOR Leo Charre leocharre at cpan dot org =head1 SEE ALSO LEOCHARRE::Dev =cut