Perl 数组 (push、pop、shift、unshift)
Perl提供了各种内置的函数来添加和删除数组中的元素。
函数 | 描述 |
---|---|
push | 在数组的末尾插入列表中的值 |
pop | 移除一个数组的最后一个值 |
shift | 将一个数组的所有值向左移动 |
unshift | 将列表中的元素添加到数组的前面 |
push函数
该函数将列表中给定的值插入到数组的末端。多个值可以用逗号分隔插入。这个函数增加一个数组的大小。它返回新数组中元素的数量。
语法: push(Array, list)
例子:
#!/usr/bin/perl
# Initializing the array
@x = ('Java', 'C', 'C++');
# Print the Initial array
print "Original array: @x \n";
# Pushing multiple values in the array
push(@x, 'Python', 'Perl');
# Printing the array
print "Updated array: @x";
输出:
Original array: Java C C++
Updated array: Java C C++ Python Perl
pop函数
该函数用于移除数组中的最后一个元素。在执行pop函数后,数组的大小被递减一个元素。如果列表为空,该函数返回undef,否则返回数组的最后一个元素。
语法: pop(Array)
例子:
#!/usr/bin/perl
# Initializing the array
@x = ('Java', 'C', 'C++');
# Print the Initial array
print "Original array: @x \n";
# Prints the value returned by pop
print "Value returned by pop: ", pop(@x);
# Prints the array after pop operation
print "\nUpdated array: @x";
输出:
Original array: Java C C++
Value returned by pop: C++
Updated array: Java C
shift函数
该函数返回一个数组中的第一个值,将其删除,并将数组列表中的元素向左移动一个。移位操作和pop操作一样,都是从数组的起点开始移位,而不是像pop那样从终点开始。如果数组为空,该函数返回undef,否则返回数组的第一个元素。
语法: shift(Array)
示例:
#!/usr/bin/perl
# Initializing the array
@x = ('Java', 'C', 'C++');
# Print the Initial array
print "Original array: @x \n";
# Prints the value returned
# by shift function
print "Value returned by shift: ",
shift(@x);
# Array after shift operation
print "\nUpdated array: @x";
输出:
Original array: Java C C++
Value returned by shift :Java
Updated array: C C++
unshift函数
该函数将给定的元素列表放在一个数组的开头。从而将一个数组中的所有数值向右移动。多个数值可以通过这个操作来取消移位。该函数返回一个数组中新元素的数量。
语法: unshift(Array, List)
例子:
#!/usr/bin/perl
# Initializing the array
@x = ('Java', 'C', 'C++');
# Print the Initial array
print "Original array: @x \n";
# Prints the number of elements
# returned by unshift
print "No of elements returned by unshift: ",
unshift(@x, 'PHP', 'JSP');
# Array after unshift operation
print "\nUpdated array: @x";
输出:
Original array: Java C C++
No of elements returned by unshift :5
Updated array: PHP JSP Java C C++