in reply to Delete from array

Don't use an array for @shouldexist, but use a hash for that:
my %shouldexist = map { $_ => undef } @shouldexist;
Now you have a hash in which the filenames are keys. Since we're only interested in the existence of a key, I've used the value "undef" as the value associated with the key.

Then, whenever you find that a file exists, you remove the corresponding key from the hash.

delete $shouldexist{ $filename };
Then, when you're done, you check which keys are still left: that is then your list of files that are missing:
print "Missing:\n"; foreach (sort keys %shouldexist) { print "$_\n"; }
Note that I added the "sort" here because the order of the keys in the hash is indeterminate (even random in 5.8.1).

I leave the checking for the existence of the file as an excercise to the reader.

Liz

Replies are listed 'Best First'.
Re^2: Delete from array
by Aristotle (Chancellor) on Aug 07, 2003 at 09:28 UTC
    Note this does not preserve the order of files in @should_exist.

    Makeshifts last the longest.