ikegami, thanks for recommending Data::Diver.
I did take a look at it, and it does answer the question.
But the problem with modules is that they do the work,
and you don't know how they done it. I was more interested in a ways of mapping data structure myself.
My first question was actually very different from this one, and I was able to use the concepts of that answer to solve a more complex problem that I had. Basically, I was interested seeing ways of transversing the data structure and how those values relate to each other. If anyone has any other ways of doing it, I'm interested in seeing it.