The other monks who have responded in this thread have already answered your question. Just my 2 cents...arrays and hashes are collections of scalars. Therefore, to create a multi tiered data structure, you need to put either an annonymous (hash|array), or a reference to a (hash|array). Both of the aforementioned "things" can be contained in scalars, and thus are candidates for entry into a hash or an array. Hope this helps.
Therefore, to create a multi tiered data structure, you need to put either an annonymous (hash|array), or a reference to a (hash|array).
This may be a bit pedantic of me, but there's no sense in confusing the issue.
You can't put an anonymous array (or an anonymous hash) into another structure. References are required in order to build nested data structures. It doesn't matter whether a reference refers to a named thingie or an anonymous one.
This ['anon', 'array'] is not an "anonymous array." It is a reference to an anonymous array. Similary with this reference to an {anonymous => 'hash'}. It is best to understand that these constructs actually are references and to avoid useless distinctions between them and other references.
You're absolutely right, however, the OP didn't know how to constuct a multi-level data structure, so I'm pretty sure that he didn't know about annonymous arrays. I was just presenting more of the lingo so that next time someone says something about either an anonymous array or an array ref, s/he will at least have had exposure. Also, FWIW, the Camel seems to use annonymous array to be synonymous with array reference (similarly for hashes).
I do think that its best to define lingo when you present it though. A short explanation like "an anonymous array or hash doesn't have a name and is accessible only through a reference" can eliminate a lot of misunderstanding. Suggesting that an array could contain "a reference to an array" or "an anonymous array" is a tad misleading.
The Camel plays a little loose with the term, even going by its own glossary defintion. But then again, it actually has a glossary which explains exactly what an anonymous referent is.
For the record, I don't think there is anything wrong with using the shorter "hash of anonymous arrays" to the long-winded precision of "hash of references to anonymous arrays." Afterall, once you know what an anonymous array is, you know that a reference must, by definition, be involved. I also think that it is perfectly fine to call an "hash of array references" an "hash of arrays."
But I do think it is confusing to speak of a hash which holds array references or anonymous arrays because anonymous arrays are array references (in this loose usage.)