I have an array that contains some filenames that I wish to check for, however
I don't seem to be checking the array, at least not in the manner I expect
;-) Here's the relevant offending code:
my @lsLib = ("libListTree.a",
"libXpm.a",
"libfalk.a",
"libmysqlclient.a",
"libdxclass.so.6.0",
"libxg.a");
sub checkLib() {
# Pass the directory to check in, and an array containing the filenames
# to check for
&check($libDir, @lsLib);
}
sub check() {
my ($dir,@toCheck) = @_;
my $last = @toCheck;
my $i;
my $valid;
# Go to the directory we need to check
print "\nEntering $dir\nChecking for $last files\n";
chdir($dir) or die "Unable to change to $dir: $!\n";
opendir(DIR, $dir) or die "Unable to open $dir: $!\n";
# Loop throught the directory we were passed
while(my $file = readdir(DIR)) {
# First gid rid of those pesky . and .. things
if($file eq "." || $file eq "..") {
next;
}
$valid = 0;
# Now loop through the array of filenames we were passed
for($i = 0; $i < $last && !$valid; $i++) {
# Make sure the file exists
if ($file eq $toCheck[$i]) {
print "\t\- $file.....OK\n";
$valid = 1;
}
}
##
# $i not valid
#
if (!$valid) {
#if($file ne "." || $file ne "..") {
# If its FUBAR add it to the array, and let us know
print "\t\- $file.....ERROR\n";
push(@missingFiles,"$dir/$file");
#}
}
}
# Be nice and close our directory handle
closedir DIR;
}
Here's the kicker, it works for aother arrays that I pass, but not the one
shown above. The entire script can be found at
http://www.visionpro.com/~michael/build-checker.pl
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]