http://www.perlmonks.org?node_id=525403


in reply to Skipping directories using File::Find

Look at the preprocess option in the documentation.

The code can be used to sort the file/directory names alphabetically, numerically, or to filter out directory entries based on their name alone.

You can pre-process a directory and remove entries for backup directories based on a regex or lookup. File::Find will only follow and process the list of files/directories that are returned by this method.

The example below prints out all files and directories that start with A-D.

#! /usr/bin/perl use strict; use warnings; use File::Find; find ({wanted => \&wanted, preprocess=> \&preproc, no_chdir=>1}, @ARGV +); sub wanted { print "wanted $_\n" } sub preproc { # print "Pre processing $_\n" foreach (@_); return grep {/^[A-Da-d]/}@_; }