in reply to Re^2: Extracting a block of text between start and end point
in thread Extracting a block of text between start and end point

My code was just a proof-of-concept to show how to use the range operator for this task. For a working script operating on files “log1.log”, “logX.log”, and “logZ.log”, say, — and assuming you want all the output to go to a single file “output.txt” (do you?) — you would do (untested):

my @filenames = qw(log1.log logX.log logZ.log); open(my $out, '>', 'output.txt') or die "Cannot open file 'output.txt' + for writing: $!"; for (my $filename (@filenames) { open(my $in, '<', $filename) or die "Cannot open file '$filename' +for reading: $!"; while (<$in>) { ... if (/AS \s+ $keyword/ix) { print $out join('', @block); last; } ... } close $in or die "Cannot close file '$filename': $!"; } close $out or die "Cannot close file 'output.txt: $!";

See perlintro and perlopentut.

Hope that helps,

Athanasius <°(((><contra mundum Iustus alius egestas vitae, eros Piratica,