in reply to Re: File Parsing and Pattern Matching
in thread File Parsing and Pattern Matching
use warnings; use strict; my %results; my $type; while (<DATA>) { next if m{^/}; next unless /\S/; if (/^TYPE\s(\S+)/) { $type = $1; $results{$type}{CAUSE } = 'UNDEF'; $results{$type}{EFFECT} = 'UNDEF'; } if (/^(CAUSE|EFFECT)\s(\S+)/) { $results{$type}{$1} = $2; } } for (sort keys %results) { print "$_:$results{$_}{CAUSE},$results{$_}{EFFECT}\n"; } __DATA__ // HEADER TAG // VERSION TAG TYPE VALUE1 EQUALS MAIN I am useless text CAUSE FAIL EFFECT ERROR ENDTYPE TYPE VALUE2 EQUALS MAIN I am useful test ENDTYPE TYPE VALUE3 EQUALS MAIN CAUSE DEGRADED ENDTYPE TYPE VALUE4 EQUALS MAIN EFFECT WARNING ENDTYPE
|
|---|