Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 使用Perl将数组元素推送到数组中_Arrays_Perl_Push - Fatal编程技术网

Arrays 使用Perl将数组元素推送到数组中

Arrays 使用Perl将数组元素推送到数组中,arrays,perl,push,Arrays,Perl,Push,使用Perl,我试图将一个数组的元素推送到另一个数组,而不是整个数组。但我没有达到我的目标 我试过这个: push @tmp_entities_all, @tmp_entities; 但是我得到了整个小数组作为大数组中的一个元素 然后我尝试了一个循环: for (@tmp_entities) {push @tmp_entities_all, $_;} 但是同样的结果,整个@tmp_实体显示为一个元素,这是我不想要的 我需要数组中的一维,而不是数组的数组!!推之前我应该投些什么吗?或者问题出在

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

我试过这个:

push @tmp_entities_all, @tmp_entities;
但是我得到了整个小数组作为大数组中的一个元素

然后我尝试了一个循环:

for (@tmp_entities) {push @tmp_entities_all, $_;}
但是同样的结果,整个
@tmp_实体
显示为一个元素,这是我不想要的

我需要数组中的一维,而不是数组的数组!!推之前我应该投些什么吗?或者问题出在哪里


Thanx很多。

在您的评论中,很明显,
@tmp\u entities
只包含一个元素,即对元素的数组引用,您希望这些元素是
@tmp\u entities
的元素

因此,您可能使用数组引用来声明数组,而不是使用一组元素

线路

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循环示例使用
@$\uu
;D(在这种情况下,它相当于
push@tmp\u entities\u all,$tmp\u entities[0];

这两种方法都应该有效。通过
use Data::Dumper在
push
之后尝试转储您的
@tmp\u实体\u all
;打印转储程序(\@tmp\u entities\u all)并在问题中包含输出。[{'type'=>'month',attr'=>{}],{'type'=>'day',attr'=>{},{'type'=>'day','attr'=>{}}],…试试这一行
perl-e'@a=(1,2,3,4);@b=(5,6,7,8);按一下@a,@b;打印“@a\n”
正如您所看到的,您所问的应该是什么循环现在正在工作:我将它改为@$uu而不是简单的$u..但是另一种方法更有效,并且应该以某种方式工作..您的数组@tmp_entities包含一个arrayreference,即保存元素。也许您定义的数组是@tmp_entities=[1,2,3]…但是你应该做@tmp_entities=(1,2,3)…这就是为什么你的循环使用@u$,你的推送在第一次尝试将数组“作为一个元素”推送…是的,是这样的..thanx all:))另一种方法可以是使用:
my@tmp_entities=qw/1 2 3/;