Programming Perlによると、左側に「any」、右側に数値を指定してスマートマッチを使用すると、数値の等価性がチェックされます。
------------------------------------------------------------------------------
| Left | Right | Description | Like (But Evaluated in Boolean Context) |
------------------------------------------------------------------------------
| Any | Num | Numeric equality | Any == Num |
したがって、次の出力が期待されます1
。
my @arr = ('aaa');
my $num = 1;
say @arr ~~ $num;
しかし、実際には空の文字列を出力します。
要素が1つなので@arr
スカラーに変換されると思っていたので、と同等です。1
say @arr ~~ $num
say @arr == $num
@arr ~~ $num
が と異なるのはなぜ@arr == $num
ですか?