2017-10-25 10 views
3

ここに私がしようとしていることがあります。それは非常に簡単なはずですが、私はそれを正しく行う方法を理解できません。Perlで文字列値を持つ配列から接合を作る6

> my @search_keys = <bb cc dd> 
[bb cc dd] 
> my $search_junc = @search_keys.join('|') 
bb|cc|dd 
> "bb" eq $search_junc 
False 
+1

文字列が同等のPerlコードであるかのように動作することを期待する理由はありません。 – Borodin

答えて

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 

|構文は単にany()関数を呼び出すための糖です。ちょうど&のようなのはall()の機能のための構文的な砂糖です。両方とも返信Junctionとなります。 so機能です。あなたは条件付きでそれを使用しようとしている場合はもちろん、あなたがそれを自分で崩壊する必要はありませんが、条件のBool ificationはあなたのためにそれを行います。

say "found" if "bb" eq any(@search_keys); 

も参照してください:https://docs.perl6.org/type/Junction

+0

それは魅力のように機能します! –

関連する問題