ここでの作業で奇妙な問題に直面していSmart Matching Operator
ます..
を使用している間のオペランドの順序はSmart Matching Operator(~~)
問題ではないことを読みましたが、同じ結果が得られます..しかし、以下に示す例では、これは機能しません..
要素が特定の配列の要素の1つであるかどうかを確認したい..
以下は、私が試した2つの方法です:-
最初の方法: - ($result ~~ @nums)
#!/perl/bin
use v5.14;
my @nums = qw( 1 2 3 27 42 );
my $result = 27;
say "The result [$result] is one of the input values (@nums)" if $result ~~ @nums;
2 番目の方法: - (@nums ~~ $result)
#!/perl/bin
use v5.14;
my @nums = qw( 1 2 3 27 42 );
my $result = 27;
say "The result [$result] is one of the input values (@nums)" \
if @nums ~~ $result;
ただし、最初の方法は正常に機能しており、ステートメントを印刷していますが、2番目の方法では印刷していません..
すなわち: -@nums ~~ $result
と同じ結果を与えていません$result ~~ @nums
なぜこれが起こっているのか理解できませ
ん。誰か助けてください。SOでこの問題を見つけることができません。