On Wed, Feb 28, 2001 at 05:16:55PM -0600, mjn wrote:
> Yep, that's the problem.  Its likely rudimentary but, how do I get around
> this stupidness on my part?  I haven't ever tried multiline pattern
> matching before...

IIRC, your original request looked like you're parsing a file containing
several distinct records with a recognizable pattern (I'll assume it's a line 
beginning with "START:") that indicates the beginning of a new record.  I
assume that you're only interested in matching data within a single record at
a time.

Based on this, you'll want to read each record in full into a single string,
then run your regex against that string.  I would probably (based only on the
impressions and assumptions already stated) use something like:

---
my $record_text = '';
while (<MYFILE>) {
  unless (/^START:/) {
    # Continuation of record in progress
    $record_text .= $_;
  } else {
    # Found a new record
    examine_record($record_text);
    $record_text = $_;
  }
}

# Last record won't be followed by a 'new record' marker
examine_record($record_text);

sub examine_record {
  my $record_text = shift;

  if ($record_text =~ /foo.+bar/sm) {
    ...
  }
}
---

(This should be considered to be perl-like pseudocode, as I have not actually
run it.)

-- 
SGI products are used to create the 'Bugs' that entertain us in theatres
and at home. - SGI job posting
Geek Code 3.1:  GCS d? s+: a- C++ UL++$ P++>+++ L+++>++++ E- W--(++) N+ o+
!K w---$ O M- V? PS+ PE Y+ PGP t 5++ X+ R++ tv b+ DI++++ D G e* h+ r y+