Am Dienstag, 25. April 2006 22:09 schrieben Sie: > This is not supposed to be for parse_file(). It would be helpful if > you try to produce a small test program that demonstrates this.
Yes, of course. I hope I didn't forget any important line of code; Best regards, Oliver Block ######## output ########### start_document 23:43:45.188784 ######################## with $p->eof(); ######## output ########### start_document 23:51:25.93499 end_document 23:51:25.96407 ######################## ####### calling script ######## .. my $p = MyParser->new; $p->parse("localfile.html"); # local html file #$p->eof(); .. ######################## ####### MyParser.pm ######## package MyParser; use strict; use HTML::Parser; use Time::HiRes qw( gettimeofday ); my $class; my $p; .. sub new { $class = shift; my $self = { }; bless $self, $class; $self->_init(); return $self; } sub _init() { $p = HTML::Parser->new( api_version => 3, start_h => [ \&_start_handler, 'tagname, attr' ], end_h => [ \&_end_handler, 'tagname' ], text_h => [ \&_text_handler, 'self' ], start_document_h => [ \&_start_document_handler, 'self' ], end_document_h => [\&_end_document_handler, 'self' ]); } sub parse() { my ($class, $s, $uri) @_; # local $class ... $p->parse($s); } sub _start_document_handler { printTimestamp $class, "start_document"; } sub _end_document_handler { printTimestamp $class, "end_document"; } sub eof() { return $p->eof(); } sub printTimestamp { my ($class, $caller, $comment) = @_; my($sec, $min, $hour) = localtime(time); my ($hsec, $msec) = gettimeofday; # $hsec not used printf("%s %s %2d:%2d:%2d.%d\n", $caller, $comment, $hour, $min, $sec, $msec): } 1; __END__