@arr = ( [ qw{ ein zwei drei } ], [ qw{ one two three four five } ], [ qw{ un deux trois quatre } ], [ qw{ uno due tre quattro cinque sei} ], );; push @xformed, [ map{ shift @$_ } @arr ] while @{ $arr[-1 ] };; print pp @xformed;; ( ["ein", "one", "un", "uno"], ["zwei", "two", "deux", "due"], ["drei", "three", "trois", "tre"], [undef, "four", "quatre", "quattro"], [undef, "five", undef, "cinque"], [undef, undef, undef, "sei"], )