__RESULT__ 0:10:1 #### my @a = (':','',':',''); my $i=0; print join $a[$i++], 0,1,0,1; # Wrong, $i isn't incremented #### __RESULT__ 0:1:0:1 #### print join $_ ? '' : ':', 0,1,0,1; # Wrong, $_ isn't set __RESULT__ 0:1:0:1 #### (start) 1. join $a[0] and $a[1] 2. join $a[1] and $a[2] 3. join $a[2] and $a[3] (finished) #### my $j = ''; $j .= $_ ? length $j ? ":$_" : $_ : $_ for (0,1,0,1); print $j; __RESULT__ 0:10:1