[ ] 和 ( ) 的区别
# 无法正常排序
my @s = [2443,5,33, 90, -9, 2, 764];
say @s.sort; # 2443 5 33 90 -9 2 764
say @s.WHAT; # (Array)
say @s.perl; # [[2443, 5, 33, 90, -9, 2, 764]]<>
# 正常排序
my $array = [2443,5,33, 90, -9, 2, 764];
say $array.sort; # -9 2 5 33 90 764 2443
say $array.WHAT; # (Array)
say $array.perl; # [2443, 5, 33, 90, -9, 2, 764]
my @s = (2443,5,33,90,-9,2,764);
say @s.sort; # -9 2 5 33 90 764 2443
say $array.WHAT; # (Array)
say @s.perl; # [2443, 5, 33, 90, -9, 2, 764]<>
可见, 使用 [ ]
和 ( )
创建数组是不一样的.
my @s = [2443, 5, 33, 90, -9, 2, 764];
这创建了一个数组, 并把该数组赋值给 @s[0]
, 所以 @s
只有一个元素, 所以对 @s 进行排序是没有意义的. 然而你可以使用:
@s[0].sort.say
来实现你要求的排序.