Перевод одинарной кавычки с помощью trans - PullRequest
0 голосов
/ 06 октября 2018

Я не могу найти способ перевести, используя trans одиночную кавычку в экранированную одинарную кавычку:

say ($ = "'well done'").=trans("'" => "\\\'" ) ;# OUTPUT: «\well done\␤»
say ($ = "'well done'").=trans(<'> => Q [\'] ) ;# OUTPUT: «\well done\␤»
say ($ = "'well done'").=trans("'" => q"\\\'" );# OUTPUT: «\well done\␤»

Возможно, существует обходной путь, использующий сплит или любое числодругие вещи, в том числе subst.В принципе, первый на самом деле производит \', что я и искал.Может быть, удвоение стволов поможет?

1 Ответ

0 голосов
/ 06 октября 2018

Я полагаю, что это ошибка с trans, но на самом деле вам нужно указать список «от» и список «к», иначе он просто будет интерпретировать левую сторону как диапазон графем, которые будут переведены вдругой диапазон графем:

say "'well done'".trans("abcde" => "vwxyz" );  # OUTPUT: 'wzll yonz'

Если вы создадите список строк для преобразования из одной в другую, вы получите желаемый результат:

say "'well done'".trans(["'"] => ["\\'"] )  # OUTPUT: \'well done\'
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...