while (@files) { my @bb; for (1 .. $num_cols) { my $file = shift @files || last; push @bb, $file; } push @data, \@bb; }