It creates non-portable code by reinventing a fine portable wheel
Firstly, I appreciate you pointing this out... It shows me that I was not adequately clear in my intent with this tutorial.
However, even at skimming the (original) first 3 paragraphs, it is clearly stated that I'm not reinventing any wheels!
This node is more of a "how-it-works" as opposed to a "how-to".
...until you have studied in detail why every part of File::Find is in there. Besides the three bugs I just mentioned, there's probably even bugs I can't see at the moment!
Please, before you hasten to nitpick the details of implementation, step back from your Perl-guru perspective and look at this from the standpoint of a newer programmer looking to understand something like File::Find.
To detail every part of that module, and why it's in there, would defeat the entire purpose of this tutorial. If my goal were to teach people to rewrite from scratch a new File::Find, I would simply cut and paste its source here (and in response to "until you have studied..", I have, and am quite dismayed at such an assumption).
That would be entirely counter-productive!! To a newer programmer trying to understand directory (or any) recursions, it is a difficult enough task simply trying to comprehend the what, why, and how of it. To be burdoned by the many exceptions, catches, "look out for"'s, and so on.... would be discouraging, to say the least.
In reply to Re: Stop reinventing the wheel! (was Re: Directory Recursion)