为什么 smartmatch 运营商~~说那0不在(0, 5..100)?
print ((0 ~~ (0, 5..100)) ? "Y" : "N");
ñ
在这里测试一下。
使右侧成为数组引用
print ((0 ~~ [0, 5..100]) ? "Y" : "N");
或命名数组
@a = (0, 5..100);
print ((0 ~~ @a) ? "Y" : "N");
或...无论这叫什么(匿名命名数组?)
print ((0 ~~ @{[0,5..100]}) ? "Y" : "N");
(0,5..100)是一个列表,但它不是一个数组,这是区分很重要的地方之一。
不要使用损坏的智能匹配运算符。0 ~~ ...尤其是它被认为损坏的原因之一。
采用
grep { $_ } 0, 5..100
或者
use List::Util qw( first );
first { $_ } 0, 5..100