使用Perl 6中的字符串值从数组中建立联结

Eug*_*sky 3 perl6

这就是我想要做的.它应该很简单,但我无法弄清楚如何正确地做到这一点.

> my @search_keys = <bb cc dd>
[bb cc dd]
> my $search_junc = @search_keys.join('|')
bb|cc|dd
> "bb" eq $search_junc
False
Run Code Online (Sandbox Code Playgroud)

Eli*_*sen 8

my @search_keys = <bb cc dd>;
say "bb" eq any(@search_keys);     # any(True, False, False)
say so "bb" eq any(@search_keys);  # True
Run Code Online (Sandbox Code Playgroud)

|语法仅仅是糖调用any()函数.就像功能的&语法糖一样all().它们都返回Junctions,你可以用例如so函数折叠它们.当然,如果你打算在条件中使用它,你不需要自己崩溃,Bool条件的化将为你做到:

say "found" if "bb" eq any(@search_keys);
Run Code Online (Sandbox Code Playgroud)

另见:https://docs.perl6.org/type/Junction