archer has asked for the wisdom of the Perl Monks concerning the following question:

Hi All, How can i check in preprocess of find::file whether the current directory has a set of files that i'm searching for? E.g: I'm searching for input.xml and output.xml in a directory that has many child directories with many number of xml files and i want to skip every other directory that does not have the files that i search. How to achieve this using preprocess routine?

Replies are listed 'Best First'.
Re: usage of preprocess in find::file
by roboticus (Chancellor) on Apr 25, 2011 at 13:55 UTC

    archer:

    You could try something like:

    sub is_interesting { my $name = shift; # only directories are interesting return 0 unless -d $name; # and only those containing input.xml and output.xml return 0 unless -f $name . "/input.xml"; return 0 unless -f $name . "/output.xml"; return 1; } sub preproc { return grep { is_interesting($_) } @_; }

    Note: All usual disclaimers apply: Untested, you can keep all the bits if/when it breaks, no down payment required, no cash back, use at your own risk, dolphin-safe, contains only white meat...

    ...roboticus

    When your only tool is a hammer, all problems look like your thumb.