merlyn has an article coming out in which he attempts to turn File::Find inside out. (i.e. with structure similiar to a filehandle iterator, rather than a functional callback) I don't know when its scheduled for publication, but you should keep an eye out for it. I think it address several
of the concerns you raise here, in an an entirely different way.