use warnings ; use strict; use HTML::Tidy; my $file_name ="d:/perl/test.xhtml"; undef $/; open xhtml_file, '<:encoding(UTF-8)', "$file_name" || die "no htm file found $!"; my $contents = ; close (xhtml_file); $/ = "\n"; my $tidy = HTML::Tidy->new(); $tidy->ignore( text => qr/DOCTYPE/, text => qr/html/, text => qr/meta/, text => qr/header/ ); $tidy->parse( "foo.html", $contents ); for my $message ( $tidy->messages ) { print $message->as_string, "\n"; }