#! 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";
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我希望输出为
Jan feb mar apr may jun jul aug sep oct nov dec
1 2 mar apr may jun jul aug sep oct nov dec
Run Code Online (Sandbox Code Playgroud)
但我得到了输出
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
Run Code Online (Sandbox Code Playgroud)
2月也应该被2代替,对吗?但为什么它没有发生.
splice ARRAY,OFFSET,LENGTH,LIST
Run Code Online (Sandbox Code Playgroud)
您指定LENGTH为1,因此只从原始列表中删除一个元素(该元素是Jan).如果您也想要feb删除,那么您必须使用LENGTH2
splice(@months, 0, 2, @new);
Run Code Online (Sandbox Code Playgroud)