$a = [[1,2,3],[4,5,6],[1],[1..4],[1..5]];; $b = [ map{ my @x; push @x, [ shift(@$_),shift(@$_)//() ] while @$_; @x } @$a ];; pp $b;; [[1, 2], [3], [4, 5], [6], [1], [1, 2], [3, 4], [1, 2], [3, 4], [5]]