print [("foo","bar")]->[1] returns bar, as I'd expect.

In addition to the answer you already got, please note that also with an anonymous arrayref those parens are not necessary, you can write ["foo","bar"] instead, and for ease of use, especially with a higher number of items, [qw/foo bar/].

With a hashref they're not only not necessary, but they also confuse the interpreter that choses to disambiguate the "wrong" (wrt your expectations) way in a situation like the one you've met. I believe you may also further disambiguate like thus:

$ perl -le 'print +{("foo","bar")}->{foo}' bar

Yep! It works... but of course there's no point doing so when simply ditching the parens would do in the first place. While we're here I'll also remind you that while your syntax is perfectly fine, people tend to prefer a fat comma a.k.a. => to separate key/value pairs since

  1. it logically stresses the relationship between them;
  2. it also autoquotes the key if it's a bare"word".

In reply to Re: Getting element of anonymous hashref by blazar
in thread Getting element of anonymous hashref by pseudomonas

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.