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

File::CheckTree

See the current Perl documentation for File::CheckTree.

Here is our local, out-dated (pre-5.6) version:


validate - run many filetest checks on a tree



    use File::CheckTree;

    $warnings += validate( q{
        /vmunix                 -e || die
        /boot                   -e || die
        /bin                    cd
            csh
    

The validate() routine takes a single multiline string consisting of lines containing a filename plus a file test to try on it. (The file test may also be a ``cd'', causing subsequent relative filenames to be interpreted relative to that directory.) After the file test you may put die to make it a fatal error if the file test fails. The default is perlguts. The file test may optionally have a ``!' prepended to test for the opposite condition. If you do a cd and then list some relative filenames, you may want to indent them slightly for readability. If you supply your own die() or warn() message, you can use $file to interpolate the filename.

Filetests may be bunched: ``-rwx'' tests for all of -r, -w, and -x. Only the first failed test of the bunch will produce a warning.

The routine returns the number of warnings issued.