http://www.perlmonks.org?node_id=555092


in reply to How do you make File::Find a bit less ugly?

Hi qazwart

I agree with you and I agree with davorg's suggestion to use File::Find::Rule. The rules can be a bit verbose so I put them in a sub.

#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; my $dir = 'c:/www/sw/category'; my $rule = get_rule($dir); while (my $file = $rule->match) { print "$file\n"; } sub get_rule{ my ($dir) = @_; my $rule = File::Find::Rule->new; $rule->or( $rule->new ->directory ->name(qr/^_/) ->prune ->discard, $rule->new ); $rule->name('*.html'); $rule->file->not( $rule->new->name('00template.html'), $rule->new->name('00greybox.html'), ); $rule->start($dir); return $rule; }