如何在Perl中从2D数组中提取一个数组?

5

我有一个二维数组,我想把第一个元素放入一个简单的数组中:

use strict; use warnings;
use Data::Dump;

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

my @list = $matrix[0];

print "matrix: " ; dd \@matrix;
print "array:  " ; dd \@array;
print "list:   " ; dd \@list;

print "size of matrix is ", scalar(@matrix), "\n";
print "size of array is  ", scalar(@array),  "\n";
print "size of list is   ", scalar(@list),   "\n";


如果我运行它,我会得到输出:
matrix: [[1, 2, 3], [4], [5, 6]]
array:  [7, 8, 9]
list:   [[1, 2, 3]]
size of matrix is 3
size of array is  3
size of list is   1

看起来 list 仍然是一个二维数组。我如何从矩阵的第一个元素获取类似于 array 的一维数组?

1个回答

8
你有一个数组的引用。你需要对其进行解引用。将以下内容更改为:

您有一个数组的引用。您需要对其进行解引用。

my @list = $matrix[0];

致:

my @list = @{ $matrix[0] };

更改后,输出结果如下:

matrix: [[1, 2, 3], [4], [5, 6]]
array:  [7, 8, 9]
list:   [1, 2, 3]
size of matrix is 3
size of array is  3
size of list is   3

请参考perldsc了解数组的嵌套用法。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接