my @array = (1, 2, 3, 4, 5, 6, 7, 8, 9, 10); my $numberofarrays = 10; my @splitArray; while (@array) { foreach (0..$numberofarrays-1){ if (@array) { push @{$splitArray[$_]}, shift @arrays; } } }