http://www.perlmonks.org?node_id=73513


in reply to Mixing up da Arrays (Golf)

I'll definitly win the 'ugly one' contest with this one...
Its only advantage : it leaves the arrays passed as arguments untouched, (I feel that someone could make it smaller too)

The most bothering thing for me (apart from the nasty $i handling)is the stop test :
last unless (join'',@n)
Too long, and to weird, anyone to help me improve this ?

sub Mix2 { my (@r,@n); my $i=-1; while($i++>-2){ @n=map{$_->[$i]}@_; @r=(@r,@n); last unless (join'',@n) } @r; }
UPDATE :
To save one char and make it even uglier,
You can whange while($i++>-2) to while($i+++2)
(and my $i=-1; to my $i--; for another one)

"Only Bad Coders Badly Code In Perl" (OBC2IP)