I went a different route. Basically I changed the input record separator to grab the 'BS' and then restore the input record separator to its default value.
After that, I process the data line by line again. Here's my code.
#!/usr/bin/perl
use strict;
local $/ = "QE)";
my %hash;
while (<DATA>) {
s/BS:\s(\w+).*QE\)//;
$hash{'BS'} = $1;
do {
local $/ = "\n";
s/(\w+) \((\d)\% \/ (\d) of \d+ \| event (\d)\% \/ (\d) of \d+
+\)//;
print "$hash{'BS'}\t$1\t$2%\t$3\t$4%\t$5\n" if ( defined($2) )
+;
}
}
__DATA__
AAA_AA1_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
AAA_AA2_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
BS: 111_DDD, QE: QQQ_DDD (additionnal QE)
BBB_BB1_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
BBB_BB2_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
BS: 222_DDD, QE: QQQ_DDD (additionnal QE)
CCC_CC1_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
CCC_CC2_DDD (0% / 0 of 1024 | event 0% / 0 of 1024)
BS: 333_DDD, QE: QQQ_DDD (additionnal QE)
Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
Read Where should I post X? if you're not absolutely sure you're posting in the right place.
Please read these before you post! —
Posts may use any of the Perl Monks Approved HTML tags:
- a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
| |
For: |
|
Use: |
| & | | & |
| < | | < |
| > | | > |
| [ | | [ |
| ] | | ] |
Link using PerlMonks shortcuts! What shortcuts can I use for linking?
See Writeup Formatting Tips and other pages linked from there for more info.