The short answer is that @array{1,2,3} is a hash slice, and therefore an array. You can tell it's a hash slice because the indexes are inside {curlies}. You can tell it's an array because it starts with an @.
It's rather like the whole beginner array-vs-array-item confusion that so many people encounter, at least briefly: if @x is my array, surely item 3 in @x should be @x[3] ?
But of course it's not, it's $x[3] because the item itself is a scalar.
In this case, even though we're retrieving from (or in your case assigning to) a hash, we're interacting with it in a list-centric way rather than a one-thing-at-a-time way.
So @x{...} refers to %x. It has nothing to do with @x at al, and also nothing to do with typeglobs.
The trick is to understand that the kind of brackets around the index ({} vs []) determine whether it's an array or hash that you're dealing with, not the symbol at the front, which only determines how many things you're dealing with in one operation.
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: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.