В моем скрипте Perl есть следующая строка:
s/\b(\w+)\b/ $replaces{$1} ? $replaces{$1} : $1 /g;
Я хочу найти все слова в строке, и если слово находится в массиве известных слов, заменить его, иначе оставить его (в идеале я хочу выполнить произвольную операцию с соответствием, а не просто троичный оператор).
Для этого я пытаюсь использовать троичный оператор. Perl лечит? и: как буквальный символ и просто объединяет их с переменными (если они определены).
Как заставить Perl обрабатывать ?: внутри замены как троичный оператор?
P.S .: Я знаю, что могу просто выполнить операцию сопоставления в следующей строке кода, но для ясности я хочу оставить для нее одну строку.