I've seen the former more often, but I'm not sure why... to me, the latter makes it more natural to pull out elements since it's references all the why down to the scalars ($r->[0]->[2]->{foo})
Actually, only the first dereferencing arrow is needed for a reference:
# using your @a and $r say $r->[0]->[2]->{foo}; # foo say $r->[0][2]{foo}; # foo say $a[0]->[2]->{foo}; # foo say $a[0][2]{foo}; # foo

So now I think you'll find that the array is the most "natural". As almut said, it's mostly preference.

I think you'll find the perl data structures cookbook a good read.


In reply to Re: when to use lists/hash vs references? by FunkyMonk
in thread when to use lists/hash vs references? by Anonymous Monk

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.