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>