仅需要单个元素时请勿用切片

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};

你可能感兴趣的:(元素)