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
.