in reply to Tree::Nary n00b has questions

I've never heard of Tree::Nary before. (Searches.) Hrm, based on http://cpanratings.perl.org/dist/Tree-Nary and what I understand about how Perl works internally, I wouldn't suggest using it. Instead I would suggest thinking in terms of native Perl data structures, using references to build more complex ones. That will be less code, should perform better, and will save memory. Read References quick reference if you need to learn how to build more complex references.

Still if you wish to persist in this approach, the answer to your first question is that you should learn how to handle references. While you're learning, Data::Dumper may be a good friend. I would handle your second question by turning each entry into a small anonymous hash, and I'd collect an array of those. Then post-process that array. For instance sort it by directory then group that up. (Note that I would not organize it using [cpan://Tree::Nary, but you could if you wanted to.) My first answer to your third question is that you should not be planning on parallelizing your code until after you have a proven performance problem. If you do, then as I said I would organize the data by sorting it first then running some grouping logic on it.