Perl split a list into fixed-size chunks
Perl
use strict;
use warnings;
sub chunk {
my ($size, @items) = @_;
die "chunk size must be positive\n" unless $size > 0;
my @batches;
while (@items) {
my $take = @items < $size ? scalar @items : $size;
push @batches, [ splice @items, 0, $take ];
}
return @batches;
}
my @batches = chunk(3, 'a' .. 'h');
for my $batch (@batches) {
print join(',', @$batch), "\n";
}