我们通常中关注列表当中的某几个单元. 例如, 从一个联系人记录中提取姓名和电话号码,假如每一条记录的格式都是由","分隔的:
姓名,性别,地址,邮编,电话号码
我们需要提取第一个和第五个字段
可以如此做:
while(<FILE>){
chomp;
my @items = split /,/;
my($name, $num)=($items[0], $items[4]);
... #继续其他操作
}
但这样有些浪费,因为@items就相当于是一个临时列表,我们可以进一少改善, 引入列表:
my($name, $num)=(split /,/)[0,4];
这样一次切片便成功地对两个标量进行了赋值.
切片通常是从列表中读取少量值的最简单办法, 这里我们可以从列表中拉出第一个和最后一个值,借助下标-1代表最后一个元素的便利:
my($name, $num)=(split /,/)[0,-1];
另外对列表排序,并取出最小值与最大值:
my($first, $last)