in reply to Arrays and Hashes woes

As you've just witnessed, “the secret, if there is one,” is references. The syntax of Perl is, typically, relaxed about such matters: it does not buttonhole you with a mandatory grammar lesson. (Yay!) The key idea is that... both arrays and hashes can (appear to) contain anything-at-all, or even to contain the same thing in many different structures and places (such that changes appear everywhere-at-once) because what is actually being tossed-about are references to these things. No matter how big-and-hairy is “the thing that the reference refers to,” and no matter how many other references might be doing the same, each reference is a small and tidy and efficient thing ... somewhat like a highly-civilized pointer with very good manners. Once you grok what is being done(!), it's natural, intuitive, resource-efficient, and of course, quite powerful.