Я хочу транслитерировать цифры от 1 до 8 с 0, но не знаю номер во время компиляции. Так как транслитерации не интерполируют переменные, я делаю это:
@trs = (sub{die},sub{${$_[0]} =~ tr/[0,1]/[1,0]/},sub{${$_[0]} =~ tr/[0,2]/[2,0]/},sub{${$_[0]} =~ tr/[0,3]/[3,0]/},sub{${$_[0]} =~ tr/[0,4]/[4,0]/},sub{${$_[0]} =~ tr/[0,5]/[5,0]/},sub{${$_[0]} =~ tr/[0,6]/[6,0]/},sub{${$_[0]} =~ tr/[0,7]/[7,0]/},sub{${$_[0]} =~ tr/[0,8]/[8,0]/});
и затем индексировать его как:
$trs[$character_to_transliterate](\$var_to_change);
Буду признателен, если кто-нибудь подскажет мне лучшее решение.