use Data::Dumper; use HTML::TreeBuilder::XPath; my $html = q| |; my $tree = HTML::TreeBuilder::XPath->new; $tree->parse($html); $tree->eof; my @wanted; my @nodes = $tree->findnodes('//ul'); for my $node ( @nodes ) { my $text = $node->findvalue('li') or next; $text =~ m/^The following Host Name/ or next; @wanted = $node->findvalues('ul/li'); last; } print Dumper \@wanted;