in reply to Parsing line by line
Since your records are separated by // you can change the value of $/, the input record separator so that instead of just one line, you will get a whole group at each iteration.
And with the /m modifier you can use ^ to mean the beginning of a line anywhere in your string.
Your input file seems to have a well defined format: "IDENTIFIER - value", so I think the easiest way to read it is to get all values in a hash, and then fetch the ones you need:
{ local $/ = '//'; while(my $record=<IN>) { my %values = $record =~ /^([-A-Z]+)\s+-\s+(.*)/mg; next unless exists $values{'UNIQUE-ID'} and exists $values{'ACCESS +ION'}; # Your code using $values{'UNIQUE-ID'} and other values here } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: Parsing line by line
by AWallBuilder (Beadle) on Jan 14, 2015 at 14:53 UTC |