One of the in-house modules I work with (and wrote) has
arrayrefs and hashrefs nested about six deep in places.
It's daunting when you look at it as a whole, but if you
deal with it as an aggregate of dependent parts, rather
than as a monolithic whole, it's quite manageable.
I tend to find that keeping track of several parallel
"simple" data structures is more complex and error-prone
than using a single, "complex" one. Inevitably, I modify
one of the related structures without modifying the others
in sympathy, and everything falls apart. (Maybe I'm
misunderstanding your point?)
The hell with paco, vote for Erudil!