目录 下一篇s) = @_;
my @links;
for my 上一篇 目录 下一篇 (@上一篇 目录 下一篇s)
{
上一篇 目录 下一篇->scheme eq 'http' or next;
my $on_site = 上一篇 目录 下一篇->authority eq $Authority;
$on_site or $Options{o} or next;
$Links++;
Twiddle();
print "LINK 上一篇 目录 下一篇n" if $Options{v} > 2;
Link->new(上一篇 目录 下一篇)->check or do
{
Report($page, 上一篇 目录 下一篇);
next;
};
$on_site or next;
上一篇 目录 下一篇->fragment(undef);
push @links, 上一篇 目录 下一篇;
}
$Options{r} or return;
for my 上一篇 目录 下一篇 (@links)
{
CheckPage(上一篇 目录 下一篇);
}
}
第一个循环检查连接。我们只检查http的连接。如果-o标志是指定的话,我们只检查站内的连接。目前的check是:
Link->new(上一篇 目录 下一篇)->check
如果检查失败,我们就调用report();
如果检查通过,而且连接是在站点上的,我们把它加入@links数组。
如果-r标志指定的话,我们进入第二个循环,然后我们对每个在站上的连接调用checkpage()。
Output
Report()根据-a,-v标志打印出坏的连接。
Twiddle()根据-t标志打印出每个具体的进一步的报告。
Summary()打印出一个最终的检查页面的报告。
包的强大并不在于它们做任何常复杂和老练的事。尽管,一旦我们写好了它们,我们可以不必管它们怎样工作就可以使用他们。