File::Find::Rule::Perl.3pm

Langue: en

Version: 2009-07-29 (fedora - 01/12/10)

Section: 3 (Bibliothèques de fonctions)

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