当我试图在数组中打印特定元素时,我错误地在[]内输入了相同数组的名称作为元素,并获得了一些输出,如图所示.我认为它占用了数组的大小并打印了那些字符,这被输出证明是错误的.
@array = (0..10, 12);
print "@array[@array]";
Run Code Online (Sandbox Code Playgroud)
版画
Use of uninitialized value in join or string at
/home/VAR121/Program/Practise_Perl/Arrays.pl line 9.
0 1 2 3 4 5 6 7 8 9 10
Run Code Online (Sandbox Code Playgroud)
我向前迈了一步,编辑了如下所示的代码
print "@array[@array[@array]]";
output as: `0 1 2 3 4 5 6 7 8 9 10 0` Use of uninitialized value in join or string at
/home/VAR121/Program/Practise_Perl/Arrays.pl line 9.
Run Code Online (Sandbox Code Playgroud)
现在我尝试在第二个数组中放入一个数字,而不是再次给出数组名称,如下所示.
print "@array[@array[1,2,3]]";
Run Code Online (Sandbox Code Playgroud)
输出为
1 2 3
Run Code Online (Sandbox Code Playgroud)
但这次没有警告信息.
是什么打印?这种行为背后的原因是什么?
你正在创建一个数组切片.首先要了解您的数组包含元素0,1,2,3,4,5,6,7,8,9,10,12.
这总共有12个元素(没有值11,但在索引11处存储值12).
现在当你使用这个结构时:@array[@array]你正在切片,并请求存储在索引0,1,2,3,4,5,6,7,8,9,10和12中的值.没有元素索引为12的数组.第十一个元素的值为"12".
| 归档时间: |
|
| 查看次数: |
366 次 |
| 最近记录: |