我一直在戳这个并且无法绕过这个“未经证实的引用”错误。这是我的简化代码:
#!/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识别为令牌对象,但我不明白为什么。
答案 0 :(得分:4)
根据手册(HTML::TokeParse at MetaCPAN),get_tag()返回数组引用,而不是对象。
你不能在bog标准数组ref。
上调用get_attr()答案 1 :(得分:1)
get_attr
是HTML::TokeParser::Simple
(HTML::TokeParser
的包装器)中的便捷方法,但在HTML::TokeParser
中不存在。
用以下代码替换代码中的两行:
use HTML::TokeParser::Simple;
my $p = HTML::TokeParser::Simple->new( $ARGV[0] );
,你的脚本就可以了。