LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 803|回复: 2

精华帖 Perl模块使用 => 简短例子代码 的问题

[复制链接]
发表于 2005-5-27 12:16:47 | 显示全部楼层 |阅读模式
#!/usr/bin/perl

use LWP::Simple;
use HTML:arser;

my $url = shift || "http://www.chinaunix.net";
my $content = LWP::Simple::get($url) or die("unknown url\n");

my $parser = HTML:arser->new(
        start_h => [\&start, "tagname, attr"],
        );

$parser->parse($content);
exit 0;

sub start
{
  my ($tag, $attr, $dtext, $origtext) = @_;     
if($tag =~ /^img$/)   {   
#改为  if($tag =~ /^a$/),就应该是找出所有链接的
#我是参考精华帖 Perl模块使用 => 简短例子代码集合! 第37个
#但是执行以后竟然没有任何结果,这是为什么?  
   
if (defined $attr->{'src'} )
     {
        print "$attr->{'src'}\n";     
     }
  }
}


我想把它改成把所有的连接获取后存在一个数组中,不知道该怎么写

sub get_hyperlinks {
my @links;
my ($data, $model) = @_;

my $parser = HTML:arser->new(
        start_h => [\&start, "tagname, attr"],
        );

$parser->parse($data);
return @links;
sub start
{
  my ($tag, $attr, $dtext, $origtext) = @_;   
# my ($link) = @$_;
  if($tag =~ /^a$/)
  {     
     if (defined $attr->{'src'} )
     {
         $links[++$#links]= $attr->{'src'};     
     }
  }
}


}

上面的写法提示:Variable "@links" will not stay shared at yzu.pl
 楼主| 发表于 2005-5-30 18:08:16 | 显示全部楼层
ding一下,这里人好少
回复 支持 反对

使用道具 举报

 楼主| 发表于 2005-6-3 19:40:43 | 显示全部楼层
怎么没有哭的图标!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表