use v5.36; undef $/; sub slurp { local @ARGV = shift; <> } my %corres; for my ($v, $k) (split "\n", slurp 'corres') {$corres{$k} = $v} $_= slurp 'A'; s{ (? https://sws.geonames.org/ (? [^/]+ ) /about.rdf ) }{ $corres{$+{key}} // $+{url} }gex; print;