in reply to trees of word lists

What have you tried? This sounds an awful lot like a good homework problem. Since you have been here a while, I am guessing that How (not) to ask a question does not apply here :-).

Personally, I would think that recursion would be an ideal solution in this case.

If there is a memory issue due to a large data set, then the recursion can be addressed, and you might want to look at DBM::Deep for storage instead of an in-memory hash.

--MidLifeXis