NAME
   File::Find::Rule::Perl - Common rules for searching for Perl things

SYNOPSIS
     use File::Find::Rule       ();
     use File::Find::Rule::Perl ();

 # Find all Perl files smaller than 10k
     my @files = File::Find::Rule->perl_file
                                 ->size('<10Ki')
                                 ->in('dir');

 # Locate all the modules that PAUSE will index
     my @mod = File::Find::Rule->no_index
                               ->perl_module
                               ->in('My-Distribution');

DESCRIPTION
   I write a lot of things that muck with Perl files. And it always annoyed
   me that finding "perl files" requires a moderately complex
   File::Find::Rule pattern.

   File::Find::Rule::Perl provides methods for finding various types
   Perl-related files, or replicating search queries run on a distribution
   in various parts of the CPAN ecosystem.

METHODS
 perl_module
   The "perl_module" rule locates perl modules. That is, files that are
   named "*.pm".

   This rule is equivalent to "->"file->name( '*.pm' )> and is included
   primarily for completeness.

 perl_test
   The "perl_test" rule locates perl test scripts. That is, files that are
   named "*.t".

   This rule is equivalent to "->"file->name( '*.t' )> and is included
   primarily for completeness.

 perl_installer
   The "perl_installer" rule locates perl distribution installers. That is,
   it locates "Makefile.PL" and "Build.PL" files.

 perl_script
   The "perl_script" rule locates perl scripts.

   This is any file that ends in .pl, or any files without extensions that
   have a perl "hash-bang" line.

 perl_file
   The "perl_file" rule locates all files containing Perl code.

   This includes all the files matching the above "perl_module",
   "perl_test", "perl_installer" and "perl_script" rules.

 no_index
     # Provide the rules directly
     $rule->no_index(
         directory => [ 'inc', 't', 'examples' ],
         file      => [ 'Foo.pm', 'lib/Foo.pm' ],
     );

 # Provide a META.yml to use
     $rule->no_index( 'META.yml' );

 # Provide a dist root directory to look for a META.yml in
     $rule->no_index( 'My-Distribution' );

 # Automatically pick up a META.yml from the target directory
     $rule->no_index->in( 'My-Distribution' );

   The "no_index" method applies a set of rules as per the no_index section
   in a "META.yml" file.

SUPPORT
   Bugs should always be submitted via the CPAN bug tracker

   <http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Find-Rule-Perl>

   For other issues, contact the maintainer

AUTHOR
   Adam Kennedy <[email protected]>

SEE ALSO
   <http://ali.as/>, File::Find::Rule, File::Find::Rule::PPI

COPYRIGHT
   Copyright 2006 - 2009 Adam Kennedy.

   This program is free software; you can redistribute it and/or modify it
   under the same terms as Perl itself.

   The full text of the license can be found in the LICENSE file included
   with this module.