I bet your code would run a lot faster if you could bypass the filesystem entirely.
Because you can't do that, go for the cleanest interface possible. File::Find loses in this respect.
Personally, I'd rather construct a filter object, add or remove criteria from it, set it to process a directory, and then receive an iterator back in scalar context or a list of matching files in list context.
If you wanted to be really clever, you could return an object for each file that gives the file name when stringified but otherwise contains accessors to other information such as that returned from stat or relative directory names or such... but that may be overkill.
My impression is that making file recursion code that handles callbacks is more complex than most situations need.
In reply to Re: $_ vs. argument passing
by chromatic
in thread $_ vs. argument passing
by Dylan
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |