通过实例化HTML :: TokeParser获得未初始化的错误

时间:2012-08-29 22:51:22

标签: perl

使用HTML :: TokeParser时,我收到了未定义的错误。

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

第1行 - 我的打印声明确实得到了所需的输出。

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

不知道为什么它无法正常工作?

2 个答案:

答案 0 :(得分:1)

$agent->content$agent->{content}不同。前者是方法调用,第二个是散列解除引用。

答案 1 :(得分:1)

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

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

my $stream = HTML::TokeParser->new( \$agent->content )