Thanks. I modified the while loop to fit my purpose.

Sami Panula (aka Ron B)

Bob Showalter wrote:
Ron B wrote:

My problem is how to print the next line after the line that
includes BLAH. So I want to print lines including BLAH keyword and
when BLAH is found the next line after it.


#!/usr/bin/perl
# print lines wich include BLAH keyword
print "Content-type: text/html\n\n";
print "<html>\n";
print "<head>\n";
print "<title>av</title></head><BODY>\n";
open(HTMLOLD, "/.../.../pohja.html");
@lines=<HTMLOLD>;
close(HTMLOLD);
$count = 0;
foreach $line (@lines) {
    if ($line =~ /BLAH */) {
        print "$line";
        $count++;
    }
    if ($count eq 50){
        last;
    }
}

print "</body>\n";
print "</html>\n";


You could solve this by setting some kind of indicator when you find a BLAH,
so the next pass through the loop would print the following line.

But don't do that. Instead of reading the lines into an array, process the
lines directly in a while loop like this:

  while (<HTMLOLD>) {
      if (/BLAH */) {
          print;              # print this line
          $_ = <HTMLOLD>;     # read following line
          print;              # and print it
      }
      last if $. >= 50;
  }


--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>




Reply via email to