foreac (@{$param{'-exclude'}}) { $has_to_be_excluded{ $_ }++; } find( sub {push @files, $File::Find::name}, $param{'-directory'} ); @files = grep { !$has_to_be_excluded{ $_ }; /\.html$/; } @files;