in reply to Multiline regexp question
A variation: If the data file is large, you may want to avoid slurping it all into memory. In which case, set the input record separator $/ to a suitable string:
#! perl use strict; use warnings; use feature 'say'; { local $/ = 'TLE - Tag Logical Element'; while (<DATA>) { say "$1 $2" if /FQName\s+'(.*?)'.*\|-\s+'(.*?)'/s; } } __DATA__ <as before>
(Regex based on hdb’s ++answer.) Output:
12:17 >perl 802_SoPW.pl ENVELOPEID 5172986 CUSTOMER_NAME Acme Inc KUNDNAVN BANANA AIRLINES ZIP_CODE SE-971 74 COUNTRY SE FAKTURA 5643452 KONTRAKT 90234342 REGISTER AF89729 DATO 16.12.13 12:17 >
Hope that helps,
| Athanasius <°(((>< contra mundum | Iustus alius egestas vitae, eros Piratica, |
|
|---|