語法
splice ARRAY,OFFSET,LENGTH,LIST
splice ARRAY,OFFSET,LENGTH
splice ARRAY,OFFSET
splice ARRAY
功能
從ARRAY數(shù)組中OFFSET處向后刪除LENGTH個元素,如果LIST參數(shù)存在,則用LIST在ARRAY中替換被刪除掉的元素。在列表上下文中返回被刪除元素的列表,在標(biāo)量上下文中返回被刪除的最后一個元素,如果沒有刪除任何元素則返回undef。
- 如果OFFSET主負,則從數(shù)組末尾開始向前計數(shù)-OFFSET為其起始位置。
- 如果省略LENGTH,則刪除從OFFSET之后的所有元素。
- 如果LENGTH為負,則從數(shù)組末尾開始計數(shù)LENGTH個元素,然后從OFFSET位置到LENGTH位置之間的元素會被刪除。
- 如果省略O(shè)FFSET和LENGTH,則刪除所有內(nèi)容。
- 如果OFFSET超出陣列的末尾,并且提供了一個LENGTH,則Perl發(fā)出警告,并在數(shù)組的末尾進行拼接。
例子
push(@a,$x,$y) splice(@a,@a,0,$x,$y)
pop(@a) splice(@a,-1)
shift(@a) splice(@a,0,1)
unshift(@a,$x,$y) splice(@a,0,0,$x,$y)
$a[$i] = $y splice(@a,$i,1,$y)
sub nary_print {
my $n = shift;
while( my @next_n = splice @_, 0, $n) {
say join q{ -- }, @next_n;
}
}
nary_print(3, qw(a b c d e f g h));
# prints:
# a -- b -- c
# d -- e -- f
# g -- h