数组操作- 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";

}

你可能感兴趣的:(sort)