foreach my $line (split /^/, $text) { print $line; my $separator_printed = 0; foreach ($line =~ m/\[.*?\]\[(.*?)\]/g) { my $link_number = $_; $separator_printed++ or print "\n"; print grep(/(\[$link_number\]\:.*)/, @url_list); print "\n"; } }