use WWW::Mechanize; use Data::Dump qw(dump); &crawl; sub crawl{ my $browser = WWW::Mechanize->new; my $url = 'https://www.centos.org/modules/news/article.php?storyid=384'; my $domain = 'centos.org'; my @all_links = getLinks($browser, $url); my @internal_links = getLinks($browser, $url, qr/($domain|!http\:)/i); my @external_links = getLinks($browser, $url, qr/(http\:&!$domain/i); return 1; } sub getLinks{ my $browser = shift; $browser->get( shift ); my @links = (); my @current_page_links = $browser->find_all_links(url_regex => shift); for(@current_page_links){ push(@links,"$_->[0]"); } return @links; }