使用HTML :: TokeParser时出现“未完成引用”的问题

时间:2013-04-19 20:59:53

标签: html perl

我一直在戳这个并且无法绕过这个“未经证实的引用”错误。这是我的简化代码:

#!/usr/local/bin/perl

use strict;
use warnings;
use HTML::TokeParser;

my $p = HTML::TokeParser->new( $ARGV[0] );
while (my $t = $p->get_tag('img')) {
    my $src = $t->get_attr('src');
    print "$src\n";
}

这是我尝试时的错误消息:

Can't call method "get_attr" on unblessed reference at M:\list_images_in_html.pl line 9.

我收集的是,它不知道使用get_attr方法将$ t识别为令牌对象,但我不明白为什么。

2 个答案:

答案 0 :(得分:4)

根据手册(HTML::TokeParse at MetaCPAN),get_tag()返回数组引用,而不是对象。

你不能在bog标准数组ref。

上调用get_attr()

答案 1 :(得分:1)

get_attrHTML::TokeParser::SimpleHTML::TokeParser的包装器)中的便捷方法,但在HTML::TokeParser中不存在。

用以下代码替换代码中的两行:

use HTML::TokeParser::Simple;
my $p = HTML::TokeParser::Simple->new( $ARGV[0] );

,你的脚本就可以了。

相关问题