タイトルの問題ですが、自分はよく以下のような関数でやります。 HTML::TreeBuilderのas_HTML()がうまいことやってくれます。 (実際にはHTML::Element::as_HTML()ですが) sub _complement_html { my $broken_html = shift; my $html = do { no strict 'refs'; no warnings 'redefine'; local *HTML::Entities::encode_entities = sub {}; local *HTML::Entities::decode = sub {}; my $tree = HTML::TreeBuilder->new; $tree->parse( $broken_html ); $tree->as_HTML; }; $html =~ s#<ht