If you want to use the messages method, you need to parse it first, not clean it.
#!/usr/bin/perl use lib '/home/brian/lib/lib/perl/5.8.4'; use strict; use warnings; use HTML::Tidy; open M, "test.html" or die "$!"; my $html = do { local $/; <M> }; my $tidy = new HTML::Tidy; $tidy->parse( "test", $html ); for my $message ( $tidy->messages ) { print $message->as_string, $/; } __END__ output on a test file: test (1:1) Warning: missing <!DOCTYPE> declaration test (8:9) Warning: missing </form> before <option> test (6:1) Warning: <option> isn't allowed in <body> elements test (6:1) Warning: <input> isn't allowed in <body> elements test (12:33) Warning: inserting implicit <form> test (14:17) Warning: discarding unexpected </option> test (12:33) Warning: <form> lacks "action" attribute
If you want the cleaned output, it is edited in-place, ie:
$tidy->clean( $html ); # $html now contains tidied output
Update: the clean method returns the clean html, as Aristotle points out below
In reply to Re^3: HTML::Tidy and mysterious HTML::Tidy::Document
by bmann
in thread HTML::Tidy and mysterious HTML::Tidy::Document
by Cody Pendant
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |