grepl - grep through Perl documents.
grepl [options] [files or directory]
Options which take arguments
-p, --pattern A Perl regular expression to match against. Default to the empty string. -s, --search What parts of the Perl document to search in. Defaults to C<--search quote,heredoc>.
Boolean options
-w, --warnings Enable warnings -l Filenames only -h, --help Display this help -?, Display this help -H, --man Longer manpage for prove
SEARCHES
The following parts of Perl documents may be searched for:
quote
Matches quoted strings (but not heredocs).
heredoc
Matches heredocs.
pod
Matches POD.
comment
Matches comments.
The --search argument can accept a comma separate list of items to search for:
--search
--search pod,heredoc,quote
We'll add more things you can search for later.
All items may be plural to make them easier to read:
grepl --search comments,heredocs --pattern 'XXX'
Quick 'n dirty SQL Injection attack scanner:
grepl -pattern '^\s*(?i:select|insert|update|delete).*=\s*'?[\$\@]'
Because we default to searching for 'quote' and 'heredoc' elements, the above searches them for things like:
DELETE FROM table WHERE name='$name'
Due to the nature of SQL injection attacks, the above is very limited. See http://www.perlmonks.org/?node_id=632518 for more information.
Search for TODO items in comments
grepl --search comments --pattern '(?i:XXX|TODO)' lib/
Search for TODO items in comments and POD
grepl --search comments,pod --pattern '(?i:XXX|TODO)' lib/
Search for '=head3', only listing filenames
Older versions of Perl didn't recognize =head3 in POD.
=head3
grepl --search pod --pattern '^=head3' -l
If --dir or --files are not supplied, assumes we're search from the current directory on down.
--dir
--files
ack, included with App::Ack.
ack
App::Ack
This is alpha code. You've been warned.
To install App::Grepl, copy and paste the appropriate command in to your terminal.
cpanm
cpanm App::Grepl
CPAN shell
perl -MCPAN -e shell install App::Grepl
For more information on module installation, please visit the detailed CPAN module installation guide.