【发布时间】:2014-04-11 17:33:10
【问题描述】:
使用 Perl 我试图将一个数组的元素推送到另一个数组,而不是整个数组。但我没有达到我的目标。
我试过这个:
push @tmp_entities_all, @tmp_entities;
但我将整个小数组作为更大数组中的一个元素。
然后我用循环试了一下:
for (@tmp_entities) {push @tmp_entities_all, $_;}
但同样的结果,整个@tmp_entities 显示为一个元素,这是我不想要的。
我需要数组中的一维而不是数组数组!我应该在推动之前施放东西吗?或者是什么问题?
非常感谢。
【问题讨论】:
-
这两种方法都应该有效。尝试在
push之后通过use Data::Dumper; print Dumper(\@tmp_entities_all);转储您的@tmp_entities_all,并将输出包含在您的问题中。 -
[ { 'type' => 'month', 'attr' => { } } ], [ { 'type' => 'day', 'attr' => { } }, { 'type' => 'day', 'attr' => { } } ],...
-
试试这个 oneliner
perl -e '@a=(1,2,3,4); @b=(5,6,7,8); push @a,@b; print "@a\n";',因为你可以看到你所要求的应该可以工作 -
循环现在正在工作:我已将其更改为 @$_ 而不是简单的 $_.. 但另一种方法更有效,并且应该以某种方式工作..
-
您的数组@tmp_entities 包含一个数组引用,它保存着元素。也许您像 @tmp_entities = [ 1, 2, 3] 那样定义了您的数组 ...但您应该这样做 @tmp_entities = ( 1, 2, 3 ) .. . 这就是为什么您的循环与 @$_ 一起使用并且您在第一次尝试中将数组“作为一个元素”推送...