sub process { return unless -d; opendir DIR, $_ or die "Can't open $File::Find::name: $!\n"; my @old = grep /\.old$/i, readdir DIR; closedir DIR; return unless @old; # now write what you have to }