in reply to How do I ignore an entire directory using File::Find?
find/rule is much easier to manage, see Re^2: getting picky with File::Find::Rule less typing find/rule , write something like
use File::Find::Rule qw/ find rule /; my $gonerDirs = rule( directory => name => [ 'baby', 'dead' ], qw/ prune discard/, ); ## use File::Find::Rule::Permissions (); ## ??? not for win32 ## my $keeperFiles = rule( file => permissions => [ '???' ],... ); my $keeperFiles = rule( file => exec => \&worldWriteable ... ); my @files = find( not => $gonerDirs , any => $keeperFiles , in => \@startdirs, );
Same deal
my @files = rule()->or( ## !IMPORTANT NOTE discard before prune with rule()/find() rule( name => [ 'baby','dead' ], qw/ directory discard prune /), rule( file => exec => \&worldWriteable,... ) )->in( @startdirs );
Where you write
sub worldWritable { my( $shortname, $path, $fullname ) = @_; ## $shortname == $_; ... return 1 if $want; return 0 if not $want; }
|
---|
Replies are listed 'Best First'. | |
---|---|
Re^2: How do I ignore an entire directory using File::Find? (find/rule)
by theillien1 (Acolyte) on Jun 18, 2014 at 03:48 UTC | |
by Anonymous Monk on Jun 18, 2014 at 07:13 UTC |
In Section
Seekers of Perl Wisdom