NAME

grepl - grep through Perl documents.

USAGE

grepl [options] [files or directory]

OPTIONS

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 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'

EXAMPLES

  • 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.

    grepl --search pod --pattern '^=head3' -l

NOTES

Default Directory

If --dir or --files are not supplied, assumes we're search from the current directory on down.

SEE ALSO

ack, included with App::Ack.

CAVEATS

This is alpha code. You've been warned.