#!/usr/bin/perl -- use strict; use warnings; my @x = ('a' .. 'z'); print yup( 5, @x ),"\n--\n"; print yup( 3, @x ),"\n"; sub yup { my( $n, @x ) = @_; my @yo; for( my $ix = 0; $ix < @x; $ix += $n ) { my $high = $n - 1 + $ix ; $high > $#x and $high = $#x ; push @yo, join ' ', @x[ $ix .. $high ]; } return join ",\n", @yo; } __END__ a b c d e, f g h i j, k l m n o, p q r s t, u v w x y, z -- a b c, d e f, g h i, j k l, m n o, p q r, s t u, v w x, y z