使用Perl我试图将数组的元素推送到另一个数组,而不是整个数组。但我没有达到我的目标。
我试过了:
push @tmp_entities_all, @tmp_entities;
但是我将整个小数组作为更大数组中的元素。
然后我用循环尝试了它:
for (@tmp_entities) {push @tmp_entities_all, $_;}
但是同样的结果,整个@tmp_entities
显示为一个元素,而这就是我不想要的。
我需要数组中的一个维度而不是数组数组!!我应该在推前推出一些东西吗?或者问题是什么?
Thanx很多。
答案 0 :(得分:1)
显而易见,@tmp_entities
只包含一个元素,即对您希望成为@tmp_entities
元素的元素的数组引用。
所以你可能用数组refence声明你的数组,而不是使用一组元素。
该行
push @tmp_entities_all, @tmp_entities;
明确适用于普通阵列。
在你的情况下,你可以试试......
push @tmp_entities_all, $tmp_entities[0];
或者您只是尝试使用类似
的值初始化数组my @tmp_entities = ( 1, 2, 3 ); # initialize array with 3 elements of type int
而不是
my @tmp_entities = [ 1, 2, 3 ]; # initialize array with 1 element that is an array reference with 3 elements of type int
我知道,情况就是这样,因为这就是为什么你的for-loop示例适用于@$_
; D(在这种情况下它相当于push @tmp_entities_all, $tmp_entities[0];
)。