use strict;
use warnings;
use Data::Dump;
use File::Find::Rule;
my $output = "/abc/def/ghi";
my @exclude_dirs = qw(OLD);
my $rule = File::Find::Rule->new; $rule->or($rule->new
->file()
->name(@exclude_dirs)
->prune
->discard,
$rule->new);
my @files = $rule->in("$output");
dd \@files;
####
/abc/def/ghi/Project1/
/abc/def/ghi/Project1/2013
/abc/def/ghi/Project1/2013/file1_project1.txt
/abc/def/ghi/Project1/20l4
/abc/def/ghi/Project1/2014/foobar_2014_0912_255.txt
/abc/def/ghi/Project1/2014/foobar_2014_0916_248.txt
/abc/def/ghi/Project2
/abc/def/ghi/Project2/2013
/abc/def/ghi/Project1/2013/file2_project1.txt
/abc/def/ghi/Project2/2014
/abc/def/ghi/Project2/2014/foobarbaz_2014_0912_255.txt
/abc/def/ghi/Project2/2014/foobarbaz_2014_0912_248.txt
####
/abc/def/ghi/Project1/2014/foobar_2014_0912_255.txt
/abc/def/ghi/Project2/2014/foobarbaz_2014_0912_248.txt