DB<100> use JSON DB<101> $hoH = { nested => { crossReference => 42, incidentAbstract => "string" }, } DB<102> $str = (new JSON)->pretty(1)->encode($hoH) { "nested" : { "incidentAbstract" : "string", "crossReference" : "42" } } DB<103> %translate= ( 'crossReference' => 'cross_reference' , "incidentAbstract" => 'abstract', ) DB<104> $or_keys = join "|", keys %translate => "incidentAbstract|crossReference" DB<105> $str =~ s/^(\s+")($or_keys)("\s+:)/$1$translate{$2}$3/gm => 2 DB<106> $str { "nested" : { "abstract" : "string", "cross_reference" : "42" } }