#!/usr/bin/perl use strict; use warnings; my %edits = (foo => 'bar', bar => 'foo'); my $value = 'This string is all barfoo, but a little Perl should swap the foos and bars'; my $match = '(' . join ('|', keys %edits) . ')'; $value =~ s/$match/$edits{$1}/g; print $value; #### This string is all foobar, but a little Perl should swap the bars and foos