1use strict; 2use warnings; 3 4use HTML::Parser (); 5use Test::More tests => 12; 6 7my $pi; 8my $orig; 9 10my $p = HTML::Parser->new( 11 process_h => [sub { $pi = shift; $orig = shift; }, "token0,text"]); 12 13$p->parse("<a><?foo><a>"); 14 15is($pi, "foo"); 16is($orig, "<?foo>"); 17 18$p->parse("<a><?><a>"); 19is($pi, ""); 20is($orig, "<?>"); 21 22$p->parse( 23 "<a><? 24foo 25><a>" 26); 27is($pi, "\nfoo\n"); 28is($orig, "<?\nfoo\n>"); 29 30for (qw(< a > < ? b a r > < a >)) { 31 $p->parse($_); 32} 33 34is($pi, "bar"); 35is($orig, "<?bar>"); 36 37$p->xml_mode(1); 38 39$p->parse("<a><?foo>bar??><a>"); 40is($pi, "foo>bar?"); 41is($orig, "<?foo>bar??>"); 42 43$p->parse("<a><??></a>"); 44is($pi, ""); 45is($orig, "<??>"); 46