use strict; use warnings; my $bad_states = { 'bad' => 1 }; { local $/ = '</ticket>'; my $temp; while (<DATA>) { if (m/<ticket .*?state="(.*?)"/) { next if $bad_states->{$1}; } if (m/<version="(.*?)"/) { $temp = $1; next if $temp =~ /[^\d\.]/; } if (m/<task>(.*?)<\/task>/) { $temp = $1; ### DO SOMETHING WITH TASK VALUE } } } __DATA__ <ticket ... state="bad" ....> <version="1.23.4.8"> .... <task> ... </task> .... </ticket> <ticket ... state="good" ....> <version="bad"> .... <task> ... </task> .... </ticket> <ticket ... state="good" ....> <version="1.23.4.8"> .... <task>value here</task> .... </ticket>
In reply to Re: Pattern search in a Multiline Record, from a multi-record datafile.
by TJPride
in thread Pattern search in a Multiline Record, from a multi-record datafile.
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |