in reply to ugly code

fubber,
Ultimately you are going to have to loop even if you don't want to. That said, it seems that you have a list of characters that are being translated to other characters. Perhaps you want tr instead.
tr/abc/efg/ for @subtitles;

Cheers - L~R