in reply to "Deep recursion" error
Even if you don’t choose to use a File::Find type module, you certainly can use their core techniques ... which don’t involve recursion. Instead, they use a simple push-down stack.
You start by pushing the starting location on the stack. Then, something like this:
while (the stack is not empty) { pop a name off the stack search that directory for entries: -- if it is "." or ".." then SKIP it. (Guess this is what you're +not doing.) -- if it is a directory, "push" or "unshift" the fully-qualified n +ame onto the stack. -- if it is a file, process it, or stack it on another queue it to + be processed soon. }
If you push the names, you get a “depth-first” search; if you unshift them, “breadth-first.”
This also circumvents another file-system bugaboo, especially noticeable in Windows: the number of active “searches” that you can actually have going at one time, and the problem of interference between them. Only one search is actually going-on at one time.
In Section
Seekers of Perl Wisdom