sub unescape_entities { my $html = shift; my $tree = HTML::TreeBuilder::XPath->new; $tree->parse( decode_entities( $html->as_XML ) ); my @c = map "$_", $tree->findnodes( '//body/*' ); $tree->delete; return @c; } #### use Sub::ScopeFinalizer qw( scope_finalizer ); sub unescape_entities { my $html = shift; my $tree = HTML::TreeBuilder::XPath->new; my $anchor = scope_finalizer { $tree->delete; }; $tree->parse( decode_entities( $html->as_XML ) ); return map "$_", $tmp->findnodes( '//body/*' ); }