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
<
http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Find-Rule-Perl>
For other issues, contact the maintainer
AUTHOR¶
Adam Kennedy <adamk@cpan.org>
SEE ALSO¶
<
http://ali.as/>, File::Find::Rule, File::Find::Rule::PPI
COPYRIGHT¶
Copyright 2006 - 2011 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.