$ means you're working with one element.
@ means you're working with multiple elements.
@hash{@list}
is a hash slice. It amounts to
map { $hash{$_} } @list
but can be used as an lvalue.
$hash{@list}
is the same as
$hash{join($;, @list}}
It's a means of doing Hash of Hashes without actually using Hash of Hashes. It's generally unused.
In reply to Re^3: Difference Quantity of two Arrays
by ikegami
in thread Difference Quantity of two Arrays
by ocs
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |