in reply to how to alternate join?

TIMTOWTDI. You may roll your own altjoin() sub, e.g.:
sub altjoin ($$@) { my $d1=shift; my $d2=shift; my $cnt; @out=map { $_ => ++$cnt % 2 ? $d1 : $d2} @_; pop @out; @out; }

Update: except that this is not a "join", still I hope that as a minimal example it is not that bad...