Re: HTML::Parser

Oliver Block <[email protected]>
Newsgroups gmane.comp.lang.perl.modules.lwp
Message-ID <[email protected]>
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__
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.