my @a = (1..30); my @b; my $p = 0; push @b,[ @a[map{$p++}(1..3)] ] while $p < $#a; print map{"@$_\n"}@b;