my @found; find(sub { push @found, $File::Find::name; }, @directories); for (@found) { next if !check($_); ... } #### my @found; find(sub { push @found, $File::Find::name if check($File::Find::name); }, @directories); for (@found) { ... }