Perl 数组移位操作指南139


在 Perl 中,数组移位操作是用于从数组两端(开头或末尾)添加或删除元素的操作。## 添加元素


unshift()
unshift() 将指定元素添加到数组开头并返回新的数组长度。语法如下:
```perl
$new_length = unshift(@array, @elements);
```


push()
push() 将指定元素添加到数组末尾并返回新的数组长度。语法如下:
```perl
$new_length = push(@array, @elements);
```
## 删除元素


shift()
shift() 从数组开头删除并返回第一个元素。语法如下:
```perl
my $first_element = shift(@array);
```


pop()
pop() 从数组末尾删除并返回最后一个元素。语法如下:
```perl
my $last_element = pop(@array);
```


splice()
splice() 允许从数组中删除指定数量的元素,并可以从指定的偏移量开始。语法如下:
```perl
splice(@array, $offset, $num, @elements);
```
其中:
* ```$offset```:从哪里开始删除元素的偏移量。
* ```$num```:要删除的元素数量。
* ```@elements```:要插入到删除区域的元素(可选)。
## 示例


添加元素
```perl
@names = ("Alice", "Bob");
unshift(@names, "Carol"); # 添加 "Carol" 到数组开头
push(@names, "Dave"); # 添加 "Dave" 到数组末尾
```


删除元素
```perl
my $first_name = shift(@names); # 删除数组开头的第一个元素并将其存储在 $first_name 中
my $last_name = pop(@names); # 删除数组末尾的最后一个元素并将其存储在 $last_name 中
```


使用 splice() 替换元素
```perl
splice(@names, 1, 1, "Eve"); # 从索引 1 开始替换一个元素为 "Eve"
```
## 注意
* 对于添加操作,如果要插入多个元素,可以使用 ```@elements``` 作为参数列表。
* 对于删除操作,如果要删除全部元素,可以使用 ```pop()``` 或 ```shift()```。
* 使用 ```splice()``` 时,如果要删除的元素数量为 0,则不会发生删除操作。

2025-02-15


上一篇:Perl 题库:囊括基础语法、数据结构与算法

下一篇:Perl 中的 Unix 时间戳:unixdate