Okay, here's my very cheesy entry. It actually doesn't follow the rules, but it's the best I could do ;) I at least followed the intent (on finding missing files).
You pass missing a list of files (which must be presorted :) and it will return all the missing ones. No other options are available, but in the case of a directory of files, it works.
sub missing {
for$x(($_[0]=~/(.+)\..+/)[0]..($_[$#_]=~/(.+)\.(.+)/)[0])
{push@x,"$x.$2" unless grep$x eq(/(.+)\..+/)[0],@_};@x;
}
print missing qw (bar001.jpg bar002.jpg bar010.jpg);
That's 111 characters. It's sloppy, it's very confined and it's not compliant. But shoot, I couldn't do it correctly.
I should add, however, that mine version doesn't require the filenames to start with "bar" or end with ".jpg". They can be anything. The
missing function properly handles most things.