home | O'Reilly's CD bookshelfs | FreeBSD | Linux | Cisco | Cisco Exam  


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 .


Previous: 7.2.27 File::Basename - Parse File Specifications Programming Perl Next: 7.2.29 File::Copy - Copy Files or Filehandles
7.2.27 File::Basename - Parse File Specifications Book Index 7.2.29 File::Copy - Copy Files or Filehandles