Я получаю ошибку
Undefined subroutine &main::1 called at /usr/local/lib/perl/5.10.0/HTML/Parser.pm line 102.
Вот мой код
#open (IN, "<", "foo.html") or die "can't open source file: $!";
my $p = HTML::Parser->new( api_version => 3,
start_h => [&start, "tagname, attr, text"],
text_h => [&text, "text"],
default_h => [sub { print OUT shift }, "text"],
);
$p->utf8_mode;
$p->empty_element_tags;
$p->ignore_elements(qw(br));
$p->parse_file("foo.html") or die "parsing failed: $!";
#while (<IN>) {
# $p->parse($_) || die "parsing failed: $!";
#}
#$p->eof;
#close IN;
Как вы можете видеть в закомментированных частях, я также пытался напрямую открывать и вызывать синтаксический анализ (с такой же малой удачей).
Файл открывается нормально.
Parser.pm строка 102, в которой упоминается ошибка, это подпрограмма parse_file, в частности, строка вызова -> parse
Я понятия не имею, где находится parse, он не в HTML :: Parser, и я не нашел его в HTML :: Entities, который имеет единственная зависимость HTML :: Parser. = / Я боюсь, что в этот момент я потерялся, самая глубокая магия PERL все еще остается для меня загадкой.