首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Perl中创建多维数组?

如何在Perl中创建多维数组?
EN

Stack Overflow用户
提问于 2008-11-25 13:25:13
回答 6查看 49.7K关注 0票数 18

我对Perl还是个新手,但我想做的是:

代码语言:javascript
复制
my @array2d;
while(<FILE>){
  push(@array2d[$i], $_);
}

它不会编译,因为@array2d[$i]不是一个数组,而是一个标量值。

我应该如何将@array2d声明为数组的数组?

当然,我不知道我有多少行。

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-11-25 13:34:03

要创建数组的数组,或者更准确地说是arrayrefs的数组,请尝试如下所示:

代码语言:javascript
复制
my @array = ();
foreach my $i ( 0 .. 10 ) {
  foreach my $j ( 0 .. 10 ) {
    push @{ $array[$i] }, $j;
  }
}

它会将值推送到解引用的arrayref上。您应该能够访问如下条目:

代码语言:javascript
复制
print $array[3][2];
票数 27
EN

Stack Overflow用户

发布于 2008-11-25 13:38:45

将您的"push“行更改为:

代码语言:javascript
复制
push(@{$array2d[$i]}, $_);

您基本上是通过用@{}将$array2d$i括起来使它成为一个数组...然后,您可以将元素推送到该数组引用的数组中。

票数 8
EN

Stack Overflow用户

发布于 2008-11-25 13:32:57

看看perlrefperldsc,看看如何创建嵌套的数据结构,比如数组的数组和散列的散列。在使用Perl时非常有用的东西。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/317310

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档