The key word in the module name is "Rule". You can add rules to restrict what is returned: files only, smaller or larger than a given size, belonging to foo, modified no more than 3 weeks ago, is read-only and so forth.

Works for me.
I would repeat the usual steps to ease the pain of finding what's not working,use warnings as well as strict, use File::Find module instead of writing your own recursion, and some other perlisms.