in reply to Read Every n elements from Array

What kind of improvement are you looking for? That looks like a perfectly fine solution. How could it be any simpler?

while (@a) { my @group = splice(@a, 0, 3); ... }
for my $i (0..@a/3-1) { my @group = @a[$i*3..$i*3+2]; ... }
for (my $i=0; $i<@a; $i+=3) { my @group = @a[$i..$i+2]; ... }
use List::MoreUtils qw( natatime ); my $i = natatime(3, @a); while (my @group = $it->()) { ... }