Arrays 如何在Perl中创建2D数组?

Arrays 如何在Perl中创建2D数组?,arrays,perl,perl-data-structures,Arrays,Perl,Perl Data Structures,我正在尝试用Perl创建一个2d数组 我的代码: my @wordsList=(); my @words=(); for ($id=0; $id<=@language.length; $id++) { my $eng = $db->selectall_arrayref("select word from words left outer join langua

我正在尝试用Perl创建一个2d数组

我的代码:

my @wordsList=();
my @words=();

for ($id=0; $id<=@language.length; $id++)
{

        my $eng = $db->selectall_arrayref("select word from words 
                                                    left outer join language
                                                    on words.languageId = language.languageId
                                                    where words.languageId = $id
                                                    ;");


        foreach $eng(@$eng)
        {   
        my($word) = @$eng;
        $ref_to_Array->[$id][$word] = @words($id,$word);

            }
                return $words($id, $word);
}

$wordsList= NextWords();
print $wordsList;
我在语言中使用for循环,以便从数据库中获取所有单词


问题是我想循环并希望数组自动添加到2d数组。

Place
use warnings;严格使用位于您编写的每个程序的顶部。这两个pragma将为您捕获许多错误

您无法使用
(…)
后缀访问数组。该构造用于调用函数
mysub(…)
$mysubref->(…)
。要访问数组元素,请使用后缀
[index]
。在Perl中,多维数组要求每个级别有一对
[…]
。这是因为2D数组只是一个数组,其中每个元素也是一个数组

my @array = ([1, 2, 3], [4, 5, 6], [7, 8, 9]);

my $top_left     = $array[0][0];  # 1
my $bottom_right = $array[2][2];  # 9

print "@$_\n" for @array;

对于我的$id(0..$#语言){…} 如果您的意思是
$id<@language
,因为
$language[scalar@language]
是数组末尾的一个元素

my @array = ([1, 2, 3], [4, 5, 6], [7, 8, 9]);

my $top_left     = $array[0][0];  # 1
my $bottom_right = $array[2][2];  # 9

print "@$_\n" for @array;
1 2 3 4 5 6 7 8 9
for my $id (0 .. @language) {...}
for my $id (0 .. $#language) {...}