in reply to Re^3: copy line with character
in thread copy line with character

You can use a variable to check whether you've made a match on the previous line or not, then reset it back to zero when you hit one (ie. printed the 2nd line). Note how the check for $match and the subsequent printing of the 2nd line is done before looking for $find and printing the first...

my $match = 0; while (<FILE>) { # get rid of newlines chomp; if ($match){ # we have a line to print; reset the counter $match = 0; # replace multi-spaces with a single one s/\s+/ /g; print NEW "$_\n"; } if (/$find/){ # we found a $find; set $match to true $match = 1; print NEW $_; } }

I'd recommend that you use lexical (variable-based) file handles instead of bareword handles though. BAREWORD handles are global, whereby variable based ones are lexical to the scope they're defined in, and can be passed around in subroutine calls:

open my $fh, '<', 'Report.txt' or die "can't open the damned Report.txt file!: $!";

Replies are listed 'Best First'.
Re^5: copy line with character
by jalopez453 (Acolyte) on Nov 23, 2015 at 20:24 UTC

    Thanks again! Exactly what I was looking for! I really like what Perl is capable of doing as this makes simplifying files easier than copy and pasting. I had a friend teaching me but he ended up moving out of state. :( Glad I found this website.

      Perl does stand for (by some accounts, including the creator, Larry Wall): "Practical Extraction and Reporting Language". Another nickname is "Pathologically Eclectic Rubbish Lister"... so yep, it was designed for this kind of work from day one!