在perl中组合标量数组引用

时间:2014-11-07 01:18:46

标签: perl perl-data-structures

我的数据结构如下:

$hashRef->{"key1"}->{"key2"} = ['1','2','3']

这个$hashRef在for循环的每次迭代中都获得新值。我试图将所有这些附加到产生这样的输出:

$hashRef->{"key1"}->{"key2"} = ['loop1.out1','loop1.out2','loop1.out3','loop2.out1','loop2.out2','loop2.out3',...]

loop1.ou1是循环1的第一个输出的符号,不打算打印。

这可能吗?

2 个答案:

答案 0 :(得分:0)

您可以使用push向数组附加新值:

push( @{$hashRef->{"key1"}->{"key2"}}, 'loop1.out1','loop1.out2','loop1.out3');
$aData = [ 'loop2.out1','loop2.out2','loop2.out3' ];
push( @{$hashRef->{"key1"}->{"key2"}}, @$aData);
print join(",",@{$hashRef->{"key1"}->{"key2"}} ),"\n";

答案 1 :(得分:0)

希望这是你想要的:

map {
      push(@{$hashRef->{"key1"}->{"key2"}}, "loop$count.out".$_);      
    } @{$arr2};

$ count是循环数。 @ {$ arr1}是传入的数组。

谢谢,

Anoop