print "1..6\n"; my $filename = "file$$.htm"; die "$filename is already there" if -e $filename; open(FILE, ">$filename") || die "Can't create $filename: $!"; print FILE <<'EOT'; close(FILE); Heisan EOT my $testno = 1; { package MyParser; require HTML::Parser; @ISA=qw(HTML::Parser); sub start { my($self, $tag, $attr) = @_; print "not " unless $tag eq "title"; print "ok $testno\n"; $testno++; } } MyParser->new->parse_file($filename); open(FILE, $filename) || die; MyParser->new->parse_file(*FILE); seek(FILE, 0, 0) || die; MyParser->new->parse_file(\*FILE); close(FILE); require IO::File; my $io = IO::File->new($filename) || die; MyParser->new->parse_file($io); $io->seek(0, 0) || die; MyParser->new->parse_file(*$io); my $text = ''; $io->seek(0, 0) || die; MyParser->new( start_h => [ sub{ shift->eof; }, "self" ], text_h => [ sub{ $text = shift; }, "text" ])->parse_file(*$io); print "not " if $text; print "ok $testno\n"; $testno++; close($io); # needed because of bug in perl undef($io); unlink($filename) or warn "Can't unlink $filename: $!";