Perl 6 中的 Trans、hash 和字符 类

Trans, hash, and character classes in Perl 6

当我使用 regex 作为 trans 的第一个参数时,没问题:

> say 'abc'.trans(/\w <?before b>/ => 1)
1bc

使用 hash 作为 trans 的参数也可以:

> my %h
> %h{'a'} = '1'
> say 'abc'.trans(%h)
1bc

但是当我尝试在哈希中使用正则表达式时,它不起作用:

> my %h
> %h{'/\w/'} = '1'
> say 'abc'.trans(%h)
abc
'/\w/'

不是正则表达式,它是一个字符串。


my %h{Any};         # make sure it accepts non-Str keys
%h{/\w/} = 1;
say 'abc'.trans(%h)
111