繁体   English   中英

如何从 Perl 中的二维数组中提取数组?

[英]How do I extract an array from a 2D array in Perl?

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

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";

如果我运行它,我会得到 output:

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的一维数组?

您有一个数组的引用。 您需要取消引用它。 改变:

my @list = $matrix[0];

到:

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

更改后,这是 output:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM