【问题标题】:Perl Error "Can't call method "get_tag" on an undefined value at Parser.pl line 6"Perl 错误“无法在 Parser.pl 第 6 行的未定义值上调用方法“get_tag””
【发布时间】:2012-08-24 20:09:06
【问题描述】:

我写了一个简单的 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";
}

我在这个 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>

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

【问题讨论】:

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


    【解决方案1】:

    没有使用的问题:

    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";
    }
    

    【讨论】:

    • 太棒了..只是我这边的一个很小的错误..非常感谢大家。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-10
    • 2016-12-22
    • 2013-01-08
    • 1970-01-01
    • 2016-04-15
    • 1970-01-01
    • 2012-11-07
    相关资源
    最近更新 更多