$a = (3, 2, 1); の場合, 左辺がスカラー変数だから右辺もスカラーコンテキストで評価されます. で, スカラーコンテキストの場合には「(」, 「)」は普通の「優先順位を変える」意味になりかつ「,」は「順に評価する」という意味を持つ演算子になります. そのため, 上の例では 3, 2, 1 と順に評価しその最後の値である 1 が右辺の値となって $a に代入されます. 一方 @a = (3, 2, 1); の場合, 左辺が配列変数なので右辺は配列コンテキストで評価されます. この場合「(」, 「)」は配列要素をまとめるという意味, 「,」は配列要素を区切るという意味になります. で, @a は 3個の要素からなる配列になります. この状態で $a = @a; とやると, 最初の例と同様に左辺はスカラー変数だから右辺もスカラーコンテキストで評価されます. ところがこの例では右辺が
![Perl ハッシュの値のリストをスカラーコンテキストで評価すると? - OKWAVE](https://cdn-ak-scissors.b.st-hatena.com/image/square/a3202632a5b19efa6d7dbcca644fc13bfa3453dc/height=288;version=1;width=512/https%3A%2F%2Fgazo.okwave.jp%2Fokwave%2Fspn%2Fimages%2Flogo%2Ffacebook_okwave.jpg)