elsif (-d && /advanced/ ) {push (@toreturn, $_);}
####
use File::Find::Rule;
my $rule = File::Find::Rule->new;
$rule->or(
## first rule, things to ignore, to skip
$rule->new
->directory
->name('CVS', qr/advanced/i )
->prune
->discard,
$rule->new
->file
->name('*.log')
);
my @files = $rule->in( @startdirs );
####
use Path::Class::Rule;
my $rule = Path::Class::Rule->new;
$rule->skip(
$rule->new->dir->name(qr/advanced/i),
$rule->new->skip_vcs
);
$rule->file->name('*.log');
# iterator interface
my $next = $rule->iter( @dirs );
while ( my $file = $next->() ) {
...
}