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
.