Using it twice in a DRY way means putting the pattern into a variable which leads to eval :(

Because the transliteration table is built at compile time, ne+ither
the SEARCHLIST nor the REPLACEMENTLIST are subjected to dou+ble
quote interpolation. That means that if you want to use va+riables,
you must use an eval():