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.