in reply to missperception of XML::LibXML

Note that 'or die' is not necessary on the parse_file(). XML parsers will die if they try to parse bad XML. Also you might be able to get your desired nodes with just XPath (modifying ikegami's answer, but not tested):
for my $node ($root->findnodes("//ParagraphStyleRange[fn:contains(@App +liedParagraphStyle, 'BODY TEXT']/CharacterStyleRange/Content")) { say $node->textContent() } }