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]