使用Perl将数组的ELEMENTS推送到数组

时间:2014-04-11 09:08:14

标签: arrays perl push

使用Perl我试图将数组的元素推送到另一个数组,而不是整个数组。但我没有达到我的目标。

我试过了:

push @tmp_entities_all, @tmp_entities;

但是我将整个小数组作为更大数组中的元素。

然后我用循环尝试了它:

for (@tmp_entities) {push @tmp_entities_all, $_;}

但是同样的结果,整个@tmp_entities显示为一个元素,而这就是我不想要的。

我需要数组中的一个维度而不是数组数组!!我应该在推前推出一些东西吗?或者问题是什么?

Thanx很多。

1 个答案:

答案 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];)。