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 );