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 <adamk@cpan.org>
SEE ALSO
http://ali.as/, File::Find::Rule, File::Find::Rule::PPI
COPYRIGHT
Copyright 2006 - 2012 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.