use strict; use warnings; use Test::More tests => 2; use List::MoreUtils 'natatime'; my ($C, $R) = (4, 3); my @list = 1..12; my @AoA; my $iter = natatime($C, @list); while ( my @chunk = $iter->() ) { push @AoA, [@chunk]; } is_deeply \@AoA, [[1 .. 4], [5 .. 8], [9 .. 12]]; is_deeply \@list, [1..12];