The new code gives the same result as before:
Code executed:
$ perl -ne'
$key = $1 and next if /ERR:\d+_(\d+)/;
$data{$key} = $data{$key} ?
$data{$key} . "\n" . $1 :
$1 if m|DataPosted>(.+?)</Data|;
END {
print map { $_ . "\n" . $data{$_} . "\n" } keys %data;
}' G01.txt G02.txt G03.txt
Results:
1215781057901
Data.......
Data.......
Data.......
1215781057903
Data.......
1215781057905
Data.......
Data.......
Data.......
Data.......
Data.......
Data.......
G01.txt contents:
<_05_1:MessageIdentifier>ERR:38736086_1215781057901</_05_1:MessageIdentifier>
<Error:Exception> Error was 121238123... </Error:Exeption>
<_05_1:MessageIdentifier>ERR:38736086_1215781057903</_05_1:MessageIdentifier>
<Error:Exception> Error was 4554641..... </Error:Exeption>
<_05_1:MessageIdentifier>ERR:38736086_1215781057905</_05_1:MessageIdentifier>
<Error:Exception> Error was 1277123.... </Error:Exeption>
G02.txt contents:
<_05_1:MessageIdentifier>ERR:38736086_1215781057901</_05_1:MessageIdentifier>
<06
etail> Code XYZ... </06
etail>
<_05_1:MessageIdentifier>ERR:38736086_1215781057903</_05_1:MessageIdentifier>
<_05_1:MessageIdentifier>ERR:38736086_1215781057905</_05_1:MessageIdentifier>
<06
etail> Code ABC... </06
etail>
<06
etail> Code AAA... </06
etail>
G03.txt contents:
<_05_1:MessageIdentifier>ERR:38736086_1215781057901</_05_1:MessageIdentifier>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<_05_1:MessageIdentifier>ERR:38736086_1215781057903</_05_1:MessageIdentifier>
<DataPosted> Data....... </DataPosted>
<_05_1:MessageIdentifier>ERR:38736086_1215781057905</_05_1:MessageIdentifier>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>
<DataPosted> Data....... </DataPosted>