in reply to The behavior when assigning an array to scalar?

That's because the comma operator in scalar context returns the second argument. See perlop for details.

Update:

Also, one interesting case is missing in your question:

my $t = '111', '222', 'aaa', 'bbb'; print $t;

It prints 111, becuase of precedence of the two operators involved, the comma and equal sign. In fact, the parentheses in the $s case were used only to change the precedence.

($q=q:Sq=~/;[c](.)(.)/;chr(-||-|5+lengthSq)`"S|oS2"`map{chr |+ord }map{substrSq`S_+|`|}3E|-|`7**2-3:)=~y+S|`+$1,++print+eval$q,q,a,