my %url; my $nested = 0; my $MAX_DEPTH = 3; my @links = getlinks($FIRST_URL); savelinks('.', @links); sub savelinks { my $parent = shift; $nested++; for my $link (@_) { $url{$link} = $parent unless(exists($url{$link})); if($nested <= $MAX_DEPTH) { my @links = getlinks($link); savelinks($link, @links); } } }