On May 8, Ga Bu said:

>I am fairly new to perl and having problems with
>pulling in multiple lines from a file so I can search
>those lines and if it has the expression I am looking
>for then I want to return to that file and search
>again for the same pattern of lines again and then
>search again for the pattern in those line and save it
>to a file. 
> 
>Between each group of text is a "!" exclamation point.

Then just tell Perl that a "line" is really just a series of characters
that ends with "\n!\n".  To do this, change the value of the $/ variable.

The $/ variable (as described in perlvar) is the input-record-separator,
which means that it holds the string that comes at the end of every record
or "line" that you read.  It defaults to "\n", meaning that "lines" end in
a newline.

  {
    local $/ = "\n!\n";  # so that $/ gets its normal value afterward
    while (<FILE>) {
      # do something with $_
    }
  }

You might want to know about the /m modifier for regexes, which makes ^
and $ not match beginning and end of a STRING, but rather, beginning and
end of a \n-line.

  my @parts = "abc\ndef\n" =~ /^(.*)$/mg;
  print "@parts";  # "abc def"

-- 
Jeff "japhy" Pinyan      [EMAIL PROTECTED]      http://www.pobox.com/~japhy/
Are you a Monk?  http://www.perlmonks.com/     http://forums.perlguru.com/
Perl Programmer at RiskMetrics Group, Inc.     http://www.riskmetrics.com/
Acacia Fraternity, Rensselaer Chapter.         Brother #734

Reply via email to