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

Pra*_*hur 1 perl www-mechanize html-parsing 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";
}
Run Code Online (Sandbox Code Playgroud)

我在这个perl程序的同一目录下放置了一个文件bad.html.以下是bad.html的代码

<html><body>
<a href="https://www.Google.com">Google</a>
<a href="https://www.yahoo.com">Yahoo</a>
</body></html>
Run Code Online (Sandbox Code Playgroud)

请帮我解决运行perl代码时出错的问题.

Ala*_*avi 6

不使用的问题:

use strict;
use warnings;
Run Code Online (Sandbox Code Playgroud)

他们为您节省时间!你错过了;一线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";
}
Run Code Online (Sandbox Code Playgroud)