The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.