my %map = ( var1 => "0815", ... ); my $re = join '|', sort { length($b) <=> length($a) } keys %map; # var1|var2|... $line =~ s/($re)/$map{ $1 }/g;