使用HTML :: TokeParser时,我收到了未定义的错误。
print $agent->content();
my $stream = HTML::TokeParser->new($agent->{content});
第1行 - 我的打印声明确实得到了所需的输出。
第2行 - 错误:在打印中使用未初始化的值$ stream。
不知道为什么它无法正常工作?
答案 0 :(得分:1)
$agent->content
与$agent->{content}
不同。前者是方法调用,第二个是散列解除引用。
答案 1 :(得分:1)
HTML::TokeParser
构造函数的标量参数被视为文件名或文件句柄,无法打开文件将导致构造函数返回undef
并设置$!
。
如果要将实际的HTML传递给构造函数,则必须使用标量引用:
my $stream = HTML::TokeParser->new( \$agent->content )