use HTML::TokeParser::Simple 2.1;
my $parser = HTML::TokeParser::Simple->new( $ugly_html );
while (my $token = $parser->get_token) {
rewrite_body_tag($token) if $token->is_start_tag('body');
$token->rewrite_tag;
print $token->as_is;
}
sub rewrite_body_tag {
# what could be easier?
my $token = shift;
$token
->delete_attr('bgcolor')
->delete_attr('alink')
->set_attr('class','foobar');
}