0
use strict;
use warnings;
use utf8;
use 5.010;
use HTML::HTML5::Parser;

open (FILE, '<links.txt') ;

my @lines = <FILE>;
my $i;
my $a = $lines[$i];

my $xml = HTML::HTML5::Parser->load_html(location => $a) ;

出现错误:“无法在 C:/Dwimperl/perl/site/lib/HTML/HTML5/Parser/TagSoupParser.pm 第 2946 行的未定义值上调用方法“setValue””

我试图先插入一个 if 并定义值,但它不起作用。

我刚开始学习Perl,这里有人可以帮助我吗?

4

1 回答 1

0
use strict;
use warnings;
use utf8;
use 5.010;
use HTML::HTML5::Parser;
use Try::Tiny;

open (my $FILE, '<', 'links.txt') ;
my @lines = <$FILE>;
my $i = 0;
foreach my $a (@lines) {
    my $xml = try {
        HTML::HTML5::Parser->load_html(location => $a)
    } catch {
        warn "Bad line [$i][$a]";
        warn "Actual error: $_";
    };
    $i++;
}

我已经用我最好的猜测清理了你的代码,它实际上应该是如何构造的,并添加了一个 try/catch 块(使用Try::Tiny)来演示一种识别问题行的方法。

在真正诊断问题之前,您需要确定是什么输入导致了问题。

于 2013-05-03T16:54:36.003 回答