$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
}