我找不到将 trans
单引号转换为转义单引号的方法:
say ($ = "'well done'").=trans("'" => "\\\'" ) ;# OUTPUT: «\well done\»
say ($ = "'well done'").=trans(<'> => Q [\'] ) ;# OUTPUT: «\well done\»
say ($ = "'well done'").=trans("'" => q"\\\'" );# OUTPUT: «\well done\»
可能存在使用split或许多其他事物(包括
subst
)的解决方法。原则上,第一个实际上产生\'
,这是我一直在寻找的。也许翻一番是有帮助的? 最佳答案
我猜这是trans
的陷阱,但实际上您需要指定一个“from”列表和“to”列表,否则它将仅将左侧解释为一系列的字素,以将其翻译为其他字素:
say "'well done'".trans("abcde" => "vwxyz" ); # OUTPUT: 'wzll yonz'
如果创建一个字符串列表以将一个字符串转换为另一个字符串,则会得到所需的结果:
say "'well done'".trans(["'"] => ["\\'"] ) # OUTPUT: \'well done\'