[Chapter 7] 7.2.28 File::CheckTree - Run Many Tests on a Collection of Files
Author: Larry Wall, Tom Christiansen & Randal L. Schwartz
Date: 1999-07-02T02:02:24Z

#

| Chapter 7 The Standard Perl Library |

### 7.2.28 File::CheckTree - Run Many Tests on a Collection of Files

    use File::CheckTree;

    $warnings += validate( q{
        /vmunix                 -e || die
        /boot                   -e || die
        /bin                    cd
            csh                 -ex
            csh                 !-ug
            sh                  -ex
            sh                  !-ug
        /usr                    -d || warn "What happened to $file?\n"
    });

The `validate()` routine takes a single multi-line string, each line of which contains a filename plus a file test to try on it. (The file test may be given as "`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:

    || warn

You can reverse the sense of the test by prepending "!". If you specify "`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.

File tests may be grouped: `-rwx` tests for all of `-r`, `-w`, and `-x`. Only the first failed test of the group will produce a warning.

`validate()` returns the number of warnings issued, presuming it didn't die.

7.2.27 File::Basename - Parse File Specifications |  | 7.2.29 File::Copy - Copy Files or Filehandles