Perl错误“无法在Parser.pl第6行的未定义值上调用方法”get_tag“

时间:2012-08-30 06:30:19

标签: perl html-parsing www-mechanize html-parser

我写了一个简单的perl脚本,但是我收到了这个运行时错误:

无法在Parser.pl第6行的未定义值上调用方法“get_tag”

以下是我的代码:

#!usr/bin/perl
use HTML::TokeParser
my $p=HTML::TokeParser->new('bad.html');
while (my $token=$p->get_tag('a')){
my $url=$token->[1]{href};
print "$url\n";
}

我已将文件bad.html放在此perl程序的同一目录下。 以下是bad.html的代码

<html><body>
<a href="https://www.Google.com">Google</a>
<a href="https://www.yahoo.com">Yahoo</a>
</body></html>

请帮我解决运行perl代码时的错误。

1 个答案:

答案 0 :(得分:6)

不使用的问题:

use strict;
use warnings;

他们保存小时!您错过了;行中的use HTML::TokeParser

您可以更好地编写脚本:

#!/usr/bin/env perl

use strict;
use warnings;

use HTML::TokeParser;

my $p = HTML::TokeParser->new('bad.html');
while ( my $token = $p->get_tag('a') ) {
    my $url = $token->[1]{href};
    print "$url\n";
}