$a.$b.$c.$d #### concat_assign( concat_assign( concat_assign( copy($a), $b ), $c, ), $d ) #### concat_assign( concat_assign( concat( $a, $b ), $c, ), $d ) #### $ perl -MO=Concise,-exec -e'$a.$b.$c.$d' 1 <0> enter 2 <;> nextstate(main 1 -e:1) v:{ 3 <#> gvsv[*a] s 4 <#> gvsv[*b] s 5 <2> concat[t3] sK/2 6 <#> gvsv[*c] s 7 <2> concat[t5] sKS/2 8 <#> gvsv[*d] s 9 <2> concat[t7] vKS/2 a <@> leave[1 ref] vKP/REFC -e syntax OK #### sub concat_list :lvalue { my $tot_len; $tot_len += length($_) for @_; my $buf = ''; # Allocate $tot_len bytes. $buf .= $_ for @_; $buf }