Ваш пример обрывается, но похоже, что вы хотите извлечь ресурс, извлечь ссылки и, возможно, сделать что-то другое. Я предлагаю, чтобы вы позволили Mojolicious сделать это для вас. Он может извлечь ресурс, проанализировать HTML (dom
), извлечь другие ссылки (в map
) и выбрать те, которые имеют правильную схему (сначала grep
):
use v5.10;
use Mojo::UserAgent;
my $ua = Mojo::UserAgent->new;
my @queue = ( $ARGV[0] );
my %Seen; # don't process things we've already seen
while( my $this = shift @queue ) {
say "Processing $this";
my $tx = $ua->get( $this );
my @links = $tx->result
->dom
->find( 'a' )
->map( attr => 'href' )
->grep( sub { Mojo::URL->new($_)->scheme =~ /https?/ } )
->grep( sub { ! $Seen{$_} } )
->each;
say "\t", join "\n\t", @links;
push @queue, @links;
}
Я пишу обо всем этом с множеством примеров в Mojolicious Web Clients .