I see what you are trying to do now. You want the first set of <td> elements to be separated from the second set (and any others that might happen to match the search term), correct? There are quite a few ways to do that, this way takes advantage of capturing all <tr> and <td> elements and then uses the presence of a <tr> element to put the next set of <td> elements into a new anonymous array reference:

use strict; use warnings; use Data::Dumper; use HTML::TreeBuilder; my $h = HTML::TreeBuilder->new; $h->parse_content( do{ local $/; <DATA> } ); my (@tmp,@tds); for (map $_->as_HTML, $h->look_down( class => qr/Alt(Warning|Error)/ ) +) { if (/^<tr/) { if (@tmp) { push @tds, [@tmp]; @tmp = (); } } else { push @tmp, $_; } } push @tds, [@tmp] if @tmp; print Dumper \@tds; __DATA__ <TABLE class=HeaderFrame height=100 cellSpacing=0 cols=3 cellPadding=0 + width="100%" border=0 align="left"> <TR vAlign=top height=100> <TD vAlign=top width="100%" height="100"> <DIV style="overflow: auto; width: "100%"; height: 200; valign: +top"> <TABLE cellSpacing=0 cols=4 cellPadding=0 width="100%" border=0 +height="100"> <TR height=25 nowrap> <TD class=HeaderTitleNoVLine height="14" width="10">&nbsp;</ +TD> <TD class=HeaderTitle noWrap align=left height="14">Status</ +TD> <TD class=HeaderTitle noWrap align=left height="14">Results< +/TD> <TD class=HeaderTitle noWrap align=left height="14">Schedule + Start</TD> <TD class=HeaderTitle noWrap align=left height="14">Actual S +tart</TD> <TD class=HeaderTitle noWrap align=left height="14">Schedule + Name</TD> <TD class=HeaderTitle noWrap align=left height="14">Node Nam +e</TD> <TD class=HeaderTitle noWrap align=left height="14">Domain N +ame</TD></TR> <TR class=AltLight height=22> <TD class=AltLightNoVline align=middle height="17" width="10 +"> </TD> <TD class=AltLight align=left height="17">Completed</TD> <TD class=AltLight align=left height="17">Successful</TD> <TD class=AltLight align=left height="17">2015-05-11-17.00</ +TD> <TD class=AltLight align=left height="17">2015-05-11-17.10</ +TD> <TD class=AltLight align=left height="17">DAILYBACKUP_5PM</T +D> <TD class=AltLight align=left height="17">ServerA</TD> <TD class=AltLight align=left height="17">ST10_DOMAIN</TD></ +TR> <TR class=AltWarning height=22> <TD class=AltWarningNoVline align=middle height="17" width=" +10"> </TD> <TD class=AltWarning align=left height="17">Missed</TD> <TD class=AltWarning align=left height="17"></TD> <TD class=AltWarning align=left height="17">2015-05-11-18.00 +</TD> <TD class=AltWarning align=left height="17"></TD> <TD class=AltWarning align=left height="17">DAILYBACKUP_6PM< +/TD> <TD class=AltWarning align=left height="17">ServerB</TD> <TD class=AltWarning align=left height="17">ST10_DOMAIN</TD> +</TR> <TR class=AltWarning height=22> <TD class=AltWarningNoVline align=middle height="17" width=" +10"> </TD> <TD class=AltWarning align=left height="17">Missed</TD> <TD class=AltWarning align=left height="17"></TD> <TD class=AltWarning align=left height="17">2015-05-11-18.00 +</TD> <TD class=AltWarning align=left height="17"></TD> <TD class=AltWarning align=left height="17">NJDLYBACKUP_6PM< +/TD> <TD class=AltWarning align=left height="17">ServerC</TD> <TD class=AltWarning align=left height="17">ST13_DOMAIN</TD> +</TR> <TR class=AltDark height=22> <TD class=AltDarkNoVline align=middle height="17" width="10" +> </TD> <TD class=AltDark align=left height="17">QATSWAS85</TD> <TD class=AltDark align=left height="17">37899</TD> <TD class=AltDark align=left height="17">104,113</TD> <TD class=AltDark align=left height="17">617</TD> <TD class=AltDark align=left height="17">0</TD> <TD class=AltDark align=left height="17">0</TD> <TD class=AltDark align=left height="17">0</TD> <TD class=AltDark align=left height="17">25</TD> <TD class=AltDark align=left height="17">13</TD> <TD class=AltDark align=left nowrap height="17">251.30 MB</T +D> <TD class=AltDark align=left height="17">00:00:58</TD> <TD class=AltDark align=left height="17">4,378.98</TD> <TD class=AltDark align=left height="17">0%</TD> </TR> <TR class=AltLight height=22> <TD class=AltLightNoVline align=middle height="17" width="10 +"> </TD> <TD class=AltLight align=left height="17">ServerD</TD> <TD class=AltLight align=left height="17">38048</TD> <TD class=AltLight align=left height="17">31,461</TD> <TD class=AltLight align=left height="17">51</TD> <TD class=AltLight align=left height="17">0</TD> <TD class=AltLight align=left height="17">0</TD> <TD class=AltLight align=left height="17">0</TD> <TD class=AltLight align=left height="17">2</TD> <TD class=AltLight align=left height="17">2</TD> <TD class=AltLight align=left nowrap height="17">24.14 MB</T +D> <TD class=AltLight align=left height="17">00:00:12</TD> <TD class=AltLight align=left height="17">1,946.00</TD> <TD class=AltLight align=left height="17">0%</TD> </TR> </TABLE> </DIV></TD> </TR></TABLE>

Output:

$VAR1 = [ [ '<td align="middle" class="AltWarningNoVline" height="17" width="1 +0"></td>', '<td align="left" class="AltWarning" height="17">Missed</td>', '<td align="left" class="AltWarning" height="17"></td>', '<td align="left" class="AltWarning" height="17">2015-05-11-18.00< +/td>', '<td align="left" class="AltWarning" height="17"></td>', '<td align="left" class="AltWarning" height="17">DAILYBACKUP_6PM</ +td>', '<td align="left" class="AltWarning" height="17">ServerB</td>', '<td align="left" class="AltWarning" height="17">ST10_DOMAIN</td>' ], [ '<td align="middle" class="AltWarningNoVline" height="17" width="1 +0"></td>', '<td align="left" class="AltWarning" height="17">Missed</td>', '<td align="left" class="AltWarning" height="17"></td>', '<td align="left" class="AltWarning" height="17">2015-05-11-18.00< +/td>', '<td align="left" class="AltWarning" height="17"></td>', '<td align="left" class="AltWarning" height="17">NJDLYBACKUP_6PM</ +td>', '<td align="left" class="AltWarning" height="17">ServerC</td>', '<td align="left" class="AltWarning" height="17">ST13_DOMAIN</td>' ] ];

There is lots of room for improvement in the code that i wrote, but hopefully this works for you or at least helps you realize your goal.

jeffa

L-LL-L--L-LL-L--L-LL-L--
-R--R-RR-R--R-RR-R--R-RR
B--B--B--B--B--B--B--B--
H---H---H---H---H---H---
(the triplet paradiddle with high-hat)

In reply to Re^3: duplicate table with HTML::TreeBuilder look_down method by jeffa
in thread duplicate table with HTML::TreeBuilder look_down method by mazdajai

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • 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:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.