# we have @files my $number_of_files = scalar(@files); my $number_of_groups = 10; my @groups; for (1..$number_of_files) { my $modvalue = $number_of_groups % $_; push @{$groups[$modvalue]},$files[$_ - 1]); } #### { my $counter = 0; my $number_of_groups = 10; for (@files) { push(@{$groups[$counter++]},$_); $counter = 0 if ($counter == $number_of_groups); } } #### my %groups; push (@{$groups{substr($_,0,1)}},$_) for @files; #### for (@files) { my $suffix = (m/\.(\w+)$/) ? $1 : 'none'; push(@{$groups{$suffix}},$_); }