Я попробовал ваш код, и он возвращает стек HTML, из которых единственными http://
ссылками были:
<a href="http://www.w3c.org" rel="nofollow noreferrer">http://www.w3c.org</a>
<a href="http://ad.z5x.net" rel="nofollow noreferrer">http://ad.z5x.net</a>
<a href="http://divxsubtitles.net" rel="nofollow noreferrer">http://divxsubtitles.net</a>
<a href="http://feeds2read.net" rel="nofollow noreferrer">http://feeds2read.net</a>
<a href="http://ad.z5x.net" rel="nofollow noreferrer">http://ad.z5x.net</a>
<a href="http://www.google-analytics.com" rel="nofollow noreferrer">http://www.google-analytics.com</a>
<a href="http://cls.assoc-amazon.com" rel="nofollow noreferrer">http://cls.assoc-amazon.com</a>
используя код
my $content = $m->response->content();
while ( $content =~ m{(http://[^/\" \t\n\r]+)}g ) {
print( "$1\n" );
}
Итак, мои комментарии к вам:
1. добавьте use strict;
к вашему коду, вы программируете на неудачу, если вы не
2. прочитайте выходной HTML и определите, что делать дальше, вы этого не сделали, и поэтому задали неполный вопрос. Если вы не определите URL, который вы хотите загрузить, вы попросите кого-нибудь еще написать программу для вас.
После того, как вы определили URL, который хотите загрузить, достаточно просто получить его, а затем записать содержимое ответа в файл. например,
if ( ! open( FOUT, ">output.bin" ) ) {
die( "Could not create file: $!" );
}
binmode( FOUT ); # required for Windows
print( FOUT $m->response->content() );
close( FOUT );