在Perl中动态创建2 D阵列

时间:2017-01-17 09:28:20

标签: arrays perl multidimensional-array

我想在Perl中动态创建二维数组。我不确定如何做到这一点。我的要求是这样的 -

@a =([0,1,...],[1,0,1..],...)

另外,我想动态命名对内部数组的引用。即我必须能够用我选择的名称引用我的内部数组,我将动态分配。 有人可以帮我这个。

3 个答案:

答案 0 :(得分:2)

听起来你想要一个树/数组哈希。使用引用来实现这一目标。

数组数组的哈希示例:

$ref = {};
$ref->{'name'} = [];
$ref->{'name'}[0] = [];
$ref->{'name'}[0][1] = 3;

如果需要,这可能是动态的。确保初始化引用指向的内容。

答案 1 :(得分:0)

数组引用的示例数组:

my @x;
$x[$_] = [0..int(rand(5)+1)] for (0..3);

答案 2 :(得分:0)

你可能有某种循环?

for (...) {
    my @subarray = ...;
    push @a, \@subarray;
}

您也可以

for (...) {
    push @a, [ ... ];
}

如果它实际上是一个foreach循环,你甚至可以用map替换它。

my @a = map { ...; [ ... ] } ...;