1.左值切片
在赋值操作中,如果左边是一个切片,那就相当于对这个切片中变量元素依此赋值。写法上更轻便,而且等效于使用具名变量:
($giant[2],$giant[3]) = ("david","xinxin"); @giant[1,2] = ("david","xinxin");
2.不要混淆切片和元素
养成时刻检查类似@a[0]这样的单个元素切片的习惯。一般来讲,单个元素切片并不常见。
如果单个元素的切片出现在赋值左边,多半是理解上的错误。
3.方便而实用的切片
my ($uid,$gid) = (stat $file) [4,5] ; my $last = (sort @list)[-1]; my $field_two = (split /:/)[1];
@list[5..9] = reverse @list[ 5..9]; @list[ reverse 5 ..9 ]= @list[5..9]; #切片让两个元素交换变得非常简单 @a[$n,$m] = @a[$m,$n]; @item{'old','new'} = @item{'new',''old'}; '
4.快速方便的创建散列
#创建以A到Z为键,1到26为值的散列 @char_num{ 'A'..'Z'} = 1..26 ; #将一个新的元素合并到已有的散列中去 @old{keys %new} = values %new; #下边的方式更简练,但是效率不如上边的 %old = (%old,%new); #将一个散列从另一个散列中移除的方法 delete @name{keys @invalid};