sub myjoin (&@) { my $sub = shift; my $res = $_[0]; for my $i (1 .. $#_) { $res .= $sub->($_[$i-1], $_[$i]) . $_[$i]; } $res; } my @a = (':','',':',''); my $i=0; print myjoin { $a[$i++] } 0,1,0,1; # Right now