Perl 拼接:当长度的末端超过阵列的长度时,可以吗?

Perl 拼接:当长度的末端超过阵列的长度时,可以吗?,perl,splice,Perl,Splice,当偏移量在数组内,但长度的末端超过数组的末端时,是否正常?它似乎有效。医生对这种情况说了什么。下面的代码说明超过边界的长度是有效的 @array = ('this','is','for','testing','this','is','for','testing'); @array1 = (1,2,3,4,5,6,7,8,9,10); splice @array,5,100,@array1; print join "\n", @array ; 很容易尝试 $ perl -wE' my


偏移量
在数组内,但
长度的末端
超过数组的末端时,是否正常?

它似乎有效。医生对这种情况说了什么。下面的代码说明超过边界的长度是有效的

@array = ('this','is','for','testing','this','is','for','testing');
@array1 = (1,2,3,4,5,6,7,8,9,10);


splice @array,5,100,@array1;

print join "\n", @array ;
很容易尝试

$ perl -wE'
   my @a = "a".."e";
   my @b = splice @a, 2, 10;
   say 0+@b, " elements were removed.";
   say 0+@a, " elements remain."
'
3 elements were removed.
2 elements remain.

我完全相信这不会改变。

养成使用
严格
和使用严格兼容的代码的习惯,即
my@array=…
。此外,记住某些perl习惯用法也会很有帮助,例如
my@array=qw(这是用于测试的,这是用于测试的)
my@array1=1..10
。如果您的perl版本>=5.10,则可以使用
use v5.10;比如说@array
。这只是一个示例脚本,因此不能保证严格的et-all。我错过了qw(),就像用许多其他语言编程一样。我同意这些都是正确的观点。因为使用
strict
的唯一成本是多输入几个字符,而好处是避免了许多琐碎的错误,所以我想说,没有任何真正好的理由不使用strict
。除了可能在一行中。如果这对你不起作用,请考虑使用严格是一个好主意,你的上下投票有时依赖于它。如果你知道什么是严格的,或者对于Perl -W是什么,那么你知道什么时候使用它,什么时候不使用它。默认情况下,use strict的功能没有在perl中强制执行,这一事实验证了它的有效性。但是有人会说——如果代码在将来的某个版本中中断了——为什么要以未记录的方式使用
splice