#!/usr/bin/perl use strict; use warnings; use File::Find::Rule; use constant FFR => "File::Find::Rule"; my $ext = qr/\.(?:html|php)$/; my $dirs = qr/^(?:cgi-bin|log)$/; my $base = "c:/blub"; my @files = FFR->or( FFR->directory->name($dirs)->prune->discard, FFR->file->name($ext), )->in($base); print "$_\n" for @files;