Arrays 在Perl中动态创建二维数组

Arrays 在Perl中动态创建二维数组,arrays,perl,multidimensional-array,Arrays,Perl,Multidimensional Array,我想在Perl中动态创建二维数组。我不知道该怎么做。我的要求是这样的- @a =([0,1,...],[1,0,1..],...) 我还想动态命名对内部数组的引用。i、 e.我必须能够使用我选择的名称引用我的内部数组,我将动态分配这些名称。 有人能帮我一下吗。听起来你需要一个数组树/散列。使用引用来实现这一点 数组的数组哈希示例: $ref = {}; $ref->{'name'} = []; $ref->{'name'}[0] = []; $ref->{'name'}[0]

我想在Perl中动态创建二维数组。我不知道该怎么做。我的要求是这样的-

@a =([0,1,...],[1,0,1..],...)
我还想动态命名对内部数组的引用。i、 e.我必须能够使用我选择的名称引用我的内部数组,我将动态分配这些名称。
有人能帮我一下吗。

听起来你需要一个数组树/散列。使用引用来实现这一点

数组的数组哈希示例:

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

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

听起来您需要一个数组树/散列。使用引用来实现这一点

数组的数组哈希示例:

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

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

数组引用示例:

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

数组引用的示例数组:

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

你可能有某种循环

for (...) {
    my @subarray = ...;
    push @a, \@subarray;
}
你也可以这样做

for (...) {
    push @a, [ ... ];
}
如果它实际上是一个foreach循环,您甚至可以将其替换为
map

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

你可能有某种循环

for (...) {
    my @subarray = ...;
    push @a, \@subarray;
}
你也可以这样做

for (...) {
    push @a, [ ... ];
}
如果它实际上是一个foreach循环,您甚至可以将其替换为
map

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

你能不能再解释一下你所说的名字是什么意思,以及它们的动态特征?可能包括一个例子,即使它有错误的语法。现在我想你不想做阿比相信的事,但我可能错了。如果这是他的建议,那就不要做。这会让你非常悲伤。但我们需要一个更好的解释来说明。可能的重复。你能不能再解释一下你所说的名字是什么意思,以及它们的动态特征?可能包括一个例子,即使它有错误的语法。现在我想你不想做阿比相信的事,但我可能错了。如果这是他的建议,那就不要做。这会让你非常悲伤。但我们需要一个更好的解释。在我的实践中,我更喜欢使用指针数组,例如$ref->{'name'}->[0]->[1],因为您总是将这些东西作为指针传递给函数,并且不会复制其中包含的数据,这将在大型数组上节省大量内存和性能。@mickvav$ref->{'name'}->[0]->[1]与$ref->{'name'}[0][1]完全相同,在我的实践中,我更喜欢使用指针数组,例如$ref->{'name'}->[0]->[1],因为您总是将这些东西作为指针传递给函数,并且不会复制其中包含的数据-这将在大型数组上为您节省大量内存和性能。@mickvav$ref->{'name'}>[0]->[1]与$ref->{'name'}[0][1]完全相同