It might be simpler to do a first pass concatenating continuation lines via splice before your main processing.
johngg@shiraz:~/perl/Monks$ perl -Mstrict -Mwarnings -E ' open my $inFH, q{<}, \ <<__EOD__ or die $!; keyword1 data1 data2 data3 keyword2 data1 data2 data3 data4 data5 data6 keyword1 data1 data2 data3 data4 keyword3 data1 __EOD__ my @dataLines = <$inFH>; chomp @dataLines; close $inFH or die $!; for my $idx ( reverse 0 .. $#dataLines ) { next if $dataLines[ $idx ] =~ m{^keyword}; $dataLines[ $idx - 1 ] .= splice @dataLines, $idx, 1; } say for @dataLines;' keyword1 data1 data2 data3 keyword2 data1 data2 data3 data4 data5 data6 keyword1 data1 data2 data3 data4 keyword3 data1
I hope this is of interest.
Cheers,
JohnGG
In reply to Re: Manually incrementing @ array during for
by johngg
in thread Manually incrementing @ array during for
by cniggeler
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |