my @new_arrays; my $subarray_size = 15; my $array_number = int ( scalar @array / $subarray_size ); foreach ( 0..$array_number-1 ) { my @indices = $_*$subarray_size .. ($_+1)*$subarray_size; push @new_arrays, [ @array[@indices] ]; } my @indices = $array_number * $subarray_size + 1 .. scalar @array - 1; push @new_arrays, [ @array[@indices] ];