use strict; use warnings; use constant { COUNT => 10, SELECT => [ 2 .. 5 ] }; use Tie::File; tie my @lines, 'Tie::File', \*STDIN; print join(',', (split /\s+/)[@{(SELECT)}]), "\n" foreach (@lines[@lines - COUNT .. $#lines]);