This is a perfect job for Tie::File, along with an array slice. Note that the @file array holds the file open, so if you change the array in any way, you'll also modify the file live-time. If you aren't editing the file, best to take a copy of the tied array, then untie @file before doing any processing.
use warnings; use strict; use Tie::File; my $file = 'a.txt'; my $num_headers = $ARGV[0]; my $num_footers = ++$ARGV[1]; tie my @file, 'Tie::File', $file or die $!; my $stop = scalar @file - $num_footers; my @section = @file[$num_headers..$stop]; untie @file; print "$_\n" for @section;
Input file:
h1 h2 data more data even more data blah f1 f2 f3
Result:
$ ./header.pl 2 3 data more data even more data blah
-stevieb
In reply to Re: More efficient way to exclude footers
by stevieb
in thread More efficient way to exclude footers
by babysFirstPerl
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |