Greg Jackson wrote:
Please reference the example text at the bottom of this post. I am matching each heading (Severity, Status, Finding Details, and Manual Fix Procedures) and then placing the data that follows into an array...this part works fine. However, I need to get the line above "Severity" and place it in an array as well. My question is, how can I take the previous line after a match?


OS/2 Files Severity : blaa blaa blaa Status: blaa blaa blaa Finding Details: blaa blaa blaa Manual Fix Procedures: blaa blaa blaa


POSIX Files
Severity : blaa blaa blaa
Status: blaa blaa blaa
Finding Details: blaa blaa blaa
Manual Fix Procedures:
blaa blaa blaa

Is this what you want?

#!/usr/bin/perl
use warnings;
use strict;
use Data::Dumper;


$/ = ''; # paragraph mode

my @array;
while ( <DATA> ) {
        push @array, [ /  (?: .*: | ^ )  \s*  (.+)  $/xmg ];
        }

print Dumper [EMAIL PROTECTED];


__DATA__

OS/2 Files
Severity : blaa blaa blaa
Status: blaa blaa blaa
Finding Details: blaa blaa blaa
Manual Fix Procedures:
    blaa blaa blaa


POSIX Files Severity : blaa blaa blaa Status: blaa blaa blaa Finding Details: blaa blaa blaa Manual Fix Procedures: blaa blaa blaa



Which prints out:

$VAR1 = [
          [
            'OS/2 Files',
            'blaa blaa blaa',
            'blaa blaa blaa',
            'blaa blaa blaa',
            'blaa blaa blaa'
          ],
          [
            'POSIX Files',
            'blaa blaa blaa',
            'blaa blaa blaa',
            'blaa blaa blaa',
            'blaa blaa blaa '
          ]
        ];



John
--
use Perl;
program
fulfillment

--
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