use List::Util qw(min); my @array = 13 .. 234; for (0 .. $#array/20) { my $beg = $_ * 20; my $end = min($beg + 19, $#array); print for @array[ $beg .. $end ]; unless $end >= $#array; }