NAME
Devel::Examine::Subs - Get names of subroutines containing certain text
SYNOPSIS
use Devel::Examine::Subs;
my $file = 'perl.pl';
my $find = 'function(';
# list of sub names where the sub contains the text "function("
my @has = Devel::Examine::Subs->has({ file => $file, search => $find });
# same as has(), but returns the opposite
my @missing = Devel::Examine::Subs->missing({ file => $file, search => $find });
# get all sub names in a file
my @subs = Devel::Examine::Subs->all({ file => $file });
# There's also an OO interface to save typing if you will be making
# multiple calls
my $des = Devel::Examine::Subs->new();
$des->has(...);
$des->missing(...);
$des->all(...);
DESCRIPTION
Reads into Perl program and module files returning the names of its subroutines, optionally limiting the names returned to subs that contain or do not contain specified text.
METHODS
new
Instantiates a new object. This module was designed for one-off calls through the class methods. Creating an object will save keystrokes if multiple calls are required.
has( { file => $filename, search => $text } )
Takes the name of a file to search, and the text you want to search for within each sub. Useful to find out which subs call other methods.
Returns a list of names of the subs where the subroutine containes the text. In scalar context, returns the count of subs containing the found text.
missing( { file => $filename, search => $text } )
The exact opposite of has.
all( { file => $filename } )
Returns a list of the names of all subroutines found in the file.
CAVEATS
subs that begin indented (such as closures and those within other blocks) will not be counted.
AUTHOR
Steve Bertrand, <steveb at cpan.org>
SUPPORT
You can find documentation for this module with the perldoc command.
perldoc Devel::Examine::Subs
LICENSE AND COPYRIGHT
Copyright 2012 Steve Bertrand.
This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License.
See http://dev.perl.org/licenses/ for more information.