use File::Find qw( find ); my @desired_files = `cat list_o_dirs`; my %desired_files; @desired_files{ map lc, @desired_files } = (1) x @desired_files; my @hits; find( $root_dir, sub { push @hits, $File::Find::name if exists $desired_files{ lc $File::Find::name } );