如何在Perl脚本中调试拼接操作?

如何在Perl脚本中调试拼接操作?,perl,Perl,当我运行这个程序时,我希望输出如下 #! 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

当我运行这个程序时,我希望输出如下

#! 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
Feb也应该被2代替,对吗?但是为什么它没有发生。

LENGTH
指定为1,因此仅从原始列表中删除一个元素(该元素为
Jan
)。如果您也希望删除
feb
,则必须使用长度为2的
LENGTH

splice ARRAY,OFFSET,LENGTH,LIST

检查拼接的文档。它表示
从数组中删除由偏移量和长度指定的元素
。您将偏移设置为0,长度设置为1。所以从元素0开始删除1个元素。这就是为什么只有jan被删除的原因。专业提示:尽可能使你的标题有用,这里的“你能帮我吗?”并没有添加任何内容来吸引读者点击你的问题(有些人会避免出现包含乞讨的问题)。谢谢。我假定命令的语法为splice ARRAY、START\u INDEX、END\u INDEX、LIST。这就是我出错的原因。@gudipatiramu-最好检查Perl安装附带的文档或联机检查文档。@ChrisDoyle-谢谢您的建议。我会从下次开始做的。
splice ARRAY,OFFSET,LENGTH,LIST
splice(@months, 0, 2, @new);