1

使用 HTML::TokeParser 时出现未定义的错误。

print $agent->content();
my $stream = HTML::TokeParser->new($agent->{content});

第 1 行 - 我确实从我的打印语句中获得了所需的输出。

第 2 行 - 错误:在打印中使用了未初始化的值 $stream。

不知道为什么它不能工作?

4

2 回答 2

1

$agent->content不一样$agent->{content}。前者是方法调用,后者是哈希解引用。

于 2012-08-29T22:53:26.810 回答
1

构造函数的标量参数HTML::TokeParser被视为文件名或文件句柄,打开文件失败将导致构造函数返回undef并设置$!.

如果要将实际的 HTML 传递给构造函数,则必须使用标量引用:

my $stream = HTML::TokeParser->new( \$agent->content )
于 2012-08-29T23:02:10.740 回答