use List::MoreUtils qw(natatime); my @myArray = (1..100); my @myMainArray = (); my $chunkSize = 5; my $iterator = natatime $chunkSize, @myArray; while(my @values = $iterator->()){ push @myMainArray, [@values]; } foreach (@myMainArray){ my @smallArray = @{$_}; print "@smallArray\n"; }