/ /home/httpd/lonUsers use strict; use HTML::Parser; my $version = $HTML::Parser::VERSION; ## ## First test ## my $text=''; my $p = HTML::Parser->new(api_version => 3); $p->handler(start => sub { my($tag, $attr) = @_; $text .= "S[$tag"; for my $k (sort keys %$attr) { my $v = $attr->{$k}; $text .= " key $k= value $v"; } $text .= "]"; }, "tagname,attr"); $p->handler(text => sub { $text .= 'T{'.shift().'}'; }, "text"); $text=''; $p->parse('<img a="b" "=\'"\' c=d />')->eof; my $first_test_result = $text; my $first_expected_result = q{S[img key "= value " key /= value / key a= value b key c= value d]}; if (! $first_test_result) { print "Unable to run first HTML::Parser test\n"; } elsif ($first_test_result ne $first_expected_result) { print <<"END"; **** ERROR: HTML::Parser is not working properly. You are using version $version. For test 1 it returned "$first_test_result" END } ## ## Second test ## $p->xml_mode(1); $text=''; $p->parse('<img a="b" "=\'"\' c=d />')->eof; my $second_test_result = $text; my $second_expected_result = q{S[img key "= value " key a= value b key c= value d]}; if (! $second_test_result) { print "Unable to run second HTML::Parser test\n"; } elsif ($second_test_result ne $second_expected_result) { print <<"END"; **** ERROR: HTML::Parser is not working properly. You are using version $version. For test 2 it returned "$second_test_result" END }