#! usr/bin/perl
@months=('Jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec');
@new=('1','2');
print "@months\n";
splice(@months,0,1,@new);
print "@months\n";
当我运行这个时,我希望输出为
Jan feb mar apr may jun jul aug sep oct nov dec
1 2 mar apr may jun jul aug sep oct nov dec
但我得到输出
Jan feb mar apr may jun jul aug sep oct nov dec
1 2 feb mar apr may jun jul aug sep oct nov dec
2月也应该被2代替,对吗?但为什么它没有发生。
答案 0 :(得分:6)
splice ARRAY,OFFSET,LENGTH,LIST
您指定LENGTH
为1,因此只从原始列表中删除一个元素(该元素为Jan
)。如果您也希望删除feb
,则必须使用LENGTH
的2
splice(@months, 0, 2, @new);