File::Find::Rule::Perl - Common rules for searching for Perl things |
File::Find::Rule::Perl - Common rules for searching for Perl things
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');
I write a lot of things that muck with Perl files. And it always annoyed me that finding ``perl files'' requires a moderately complex the File::Find::Rule manpage 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.
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.
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.
The perl_installer
rule locates perl distribution installers. That is,
it locates Makefile.PL
and Build.PL
files.
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.
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.
# 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.
Bugs should always be submitted via the CPAN bug tracker
http://rt.cpan.org/NoAuth/ReportBug.html
For other issues, contact the maintainer
Adam Kennedy <adamk@cpan.org>
http://ali.as/, the File::Find::Rule manpage, the File::Find::Rule::PPI manpage
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.
File::Find::Rule::Perl - Common rules for searching for Perl things |