NAME

File::Ignore - Ignore files that are good to ignore

VERSION

Version 0.021

SYNOPSIS

use File::Ignore;

if (File::Ignore->ignore($file)) {
    # ... Skip ...
}
else {
    # Continue to process...
}

my $good = File::Ignore->include(qw(src/RCS apple.Z doc/apple.txt tags .svn banana.html core));
for my $file (@$good) {
    # doc/apple.txt
    #  banana.html
}

my $bad = File::Ignore->exclude([qw(src/RCS apple.Z doc/apple.txt tags .svn banana.html core)]);
for my $file (@$bad) {
    # src/RCS
    # apple.Z
    # tags
    # .svn
    # core
}

METHODS

File::Ignore->ignore( <file> )

Returns true if <file> is one of the ignoreable.

File::Ignore->include( <file>, <file>, ... )

Returns an array reference of each <file> that is NOT ignoreable (should be included)

File::Ignore->exclude( <file>, <file>, ... )

Returns an array reference of each <file> that IS ignoreable (should be excluded)

File::Ignore->ignoreable

Returns a list of what is ignoreable. Currently, this is:

             regexp        category           

RCS/         RCS           rcs revision rsync 
SCCS/        SCCS          revision rsync sccs
CVS/         CVS           cvs revision rsync 
CVS.adm      CVS\.adm      cvs revision rsync 
RCSLOG       RCSLOG        rcs revision rsync 
cvslog.*     cvslog\..*    cvs revision rsync 
tags         tags          ctags etags rsync  
TAGS         TAGS          ctags etags rsync  
.make.state  \.make\.state make rsync         
.nse_depinfo \.nse_depinfo rsync              
*~           .*~           rsync              
#*           #.*           rsync              
.#*          \.#.*         rsync              
,*           ,.*           rsync              
_$*          _\$.*         rsync              
*$           .*\$          rsync              
*.old        .*\.old       backup rsync       
*.bak        .*\.bak       backup rsync       
*.BAK        .*\.BAK       backup rsync       
*.orig       .*\.orig      backup rsync       
*.rej        .*\.rej       patch rsync        
.del-*       \.del-.*      rsync              
*.a          .*\.a         object rsync       
*.olb        .*\.olb       object rsync       
*.o          .*\.o         object rsync       
*.obj        .*\.obj       object rsync       
*.so         .*\.so        object rsync       
.exe         \.exe         object rsync       
*.Z          .*\.Z         rsync              
*.elc        .*\.elc       rsync              
*.ln         .*\.ln        rsync              
core         core          core rsync         
.svn/        \.svn         revision rsync svn
.sw[p-z]     \.sw[p-z]     swap vim  

The above list was taken from rsync -C

Let me know if you have any thoughts on additions to this list or categorization.

AUTHOR

Robert Krimen, <rkrimen at cpan.org>

BUGS

Please report any bugs or feature requests to bug-file-ignore at rt.cpan.org, or through the web interface at http://rt.cpan.org/NoAuth/ReportBug.html?Queue=File-Ignore. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.

SUPPORT

You can find documentation for this module with the perldoc command.

perldoc File::Ignore

You can also look for information at:

ACKNOWLEDGEMENTS

COPYRIGHT & LICENSE

Copyright 2007 Robert Krimen, all rights reserved.

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