数组操作- reverse sort each 操作
-
reverse
reverse 操作符会读取列表(也可能来自数组),并按相反的次序返回该列表。
@fred = 6 .. 10; @barney = reverse(@fred); # 得10,9,8,7,6 @wilma = reverse 6 .. 10; # 同上,但不需要额外的数组 @fred = reverse @fred ; # 将逆序后的结果放回原来的数组
reverse会返回次序相反的列表,但它并不会修改传进来的参数。
假如返回值无处可去,那这种操作也就变得毫无意义:
reverse @fred; #错误 不会修改@fred的值 @fred = reverse @fred; #这才正确
-
sort 操作符
sort操作符会读取列表的值(可也能来自数组),而且会根据内部的字符编码顺序对它们进行排序。
@rocks = qw/ bedrock slate rubble granite/; @sorted = sort(@rocks); # bedrock granite rubble slate @back = reverse sort @rocks ; # 将排序从slate到bedrock排列 @rocks = sort @rocks; # 将排序后的结果存到@rocks @numbers= sort 97 .. 102; # 得100,101,102,97,98,99
sort 和reverse 一样不会修改参数,所以对数组排序时,你必须将排序后的结果保存回数组。
-
each 操作符
从perl 5.12版开始,已经可以针对数组使用each操作符了。但在此前,each只能用于提取哈西键值对。
针对数组调用each,会返回数组中下一元素所对应的两个值,该元素的索引以及该元素的值
use 5.012; my @rocks= qw /bedrock slate rubble granite/; while(my($index,$value) = each @rocks){ say "$index:$value"; }