我在Smart Matching Operator
..的工作中遇到了一个奇怪的问题
我已经读过使用时操作数的顺序Smart Matching Operator(~~)
无关紧要,它给出了相同的结果..但是在我下面展示的示例中,这不起作用..
我想检查一个元素是否在给定数组的元素之一中。
以下是我尝试的两种方法:-
第一种方式: - ($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;
第二种方式: - (@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;
但是,第一种方式工作正常,它正在打印语句,但在第二种方式中,它没有打印..
即: -@nums ~~ $result
没有给出相同的结果$result ~~ @nums
我不明白为什么会这样。
任何人都可以帮助我。我无法在 SO 上找到这个问题。