use Test::More tests => 2; use HTML::Parser; my $res = ""; sub decl { my $t = shift; $res .= "[" . join("\n", map "<$_>", @$t) . "]"; } sub text { $res .= shift; } my $p = HTML::Parser->new(declaration_h => [\&decl, "tokens"], default_h => [\&text, "text"], ); $p->parse(<eof; -- "http://www.w3.org/TR/html40/strict.dtd"> "> "> foo EOT is($res, < <"-//W3C//DTD HTML 4.01//EN"> <----> <"http://www.w3.org/TR/html40/strict.dtd">] [ <"">] [ <"">] foo EOT $res = ""; $p->parse(<eof; EOT is($res, < <"-//W3C//DTD XHTML 1.0 Strict//EN"> <"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <[]>] EOT