in reply to regular expression questions (from someone without experience)

When you want to obtain data before and after a certain delimiter, think of split.

Here's an example to get you started; it might need some tweaking to do what you want.

#!/usr/bin/perl use strict; use warnings; use autodie; open my $h, '<', 'file.txt'; local $/ = ''; while (my $block = <$h>) { # split off header my $body = (split /==========\n/, $block )[-1]; # split on the long ***** line my ($before, $after) = split /\*{20,}\s*/, $body, 2; print "before: $before\n"; print "after: $after\n"; }

Note that I've used the paragraph mode for reading the records; that's explained in the documentation for the $/ variable.

Perl 6 - links to (nearly) everything that is Perl 6.
  • Comment on Re: regular expression questions (from someone without experience)
  • Download Code