in reply to How do I iterate through this data set?

There are several varieties of “data walker” objects available in CPAN, which know how to crawl through an arbitrary data structure in a depth-first or breadth-first fashion.   They maintain an internal state of where they are, and return “the next” item whenever an appropriate method is called.