在Perl中我有一个带方括号的定义的天数组。我想访问数组的每个元素。下面的代码中有一个类似的例子(这只是一个代码片段):
@days = [a,2,3];
foreach(@days){print "$_\n";}
print "\n\n @days";
输出为ARRAY(0x 2032950)
阵列(0x 2032950)
我需要访问数组元素,但无法更改@days声明。下面的代码也不好用:
@days = [a,2,3];
use feature qw<say>;
foreach(@days){print "$_\n";}
print "\n\n @days\n";
print "@$days\n";
say $_ for $days->@*;
4条答案
按热度按时间tzdcorbm1#
注意:OP -数组声明不正确。
如果你不能改变数组声明(不清楚是什么原因),那么用下面的代码打印它们
正确的代码应该是
下面这段代码演示了数组是如何创建的,利用这些信息很容易就能弄清楚如何访问数组元素的存储值
输出
mctunoxg2#
我觉得你的数据里多了一层。
使用方括号时,实际上是在使用匿名数组构造函数。返回一个数组引用,它是一个标量(单个项)。你可能并不想把它赋值给一个数组,因为你得到了一个只有一个元素的数组,而这个元素就是引用。这实际上是一个双层哈希:
由于数组引用是一个标量,所以您可能想将它赋给一个带有
$
(单项)符号的标量。你不用@
,因为引用指向一个数组。sigil更多的是关于容器而不是数据:当你有数组引用时,有多种方法可以获取它的元素。由于它是一个简单的标量(不是对数组或散列的单个元素访问),您可以使用
@
(多元素符号)作为前缀将其视为数组:你甚至可以像命名数组一样插值:
fruv7luv3#
下面是一个打印数组引用的方法:
bq3bfh9z4#
谢谢这帮助了我,下面放一些简单的东西,这帮助了我。