use strict; use warnings; use feature 'say'; use Path::Tiny; my @array = ('a'..'i'); my $size = 2; my $file = 0; path( sprintf('%s.txt', ++$file) )->append( map {"$_\n"} splice(@array, 0, $size) ) while @array; say "$file files"; __END__