perl 访问并打印子数组的第n个元素,对于每个数组

j2datikz  于 2023-06-23  发布在  Perl
关注(0)|答案(2)|浏览(187)

我有一个多维数组:

@multarray =  ( [ "one", "two", "three" ],
                [  4,   5,  6,  ],
                [ "alpha", "beta", "gamma" ]
              );

我可以访问@multarray[0]

[
    [0] [
        [0] "one"
        [1] "two"
        [2] "three"
    ]
]

甚至@multarray[0][0]

"one"

但是,如何访问每个子数组的第一个子元素?类似于multarray[*][0]的东西:

"one"
4
"alpha"
z31licg0

z31licg01#

您可以使用map并取消引用每个数组:

use warnings;
use strict;
use Data::Dumper;

my @multarray =  ( 
    [ "one", "two", "three" ],
    [  4,   5,  6,  ],
    [ "alpha", "beta", "gamma" ]
);

my @subs = map { $_->[0] } @multarray;
print Dumper(\@subs);

输出:

$VAR1 = [
          'one',
          4,
          'alpha'
        ];

标签:perldsc

ee7vknir

ee7vknir2#

使用for()循环,您可以循环遍历外部数组,并使用任何内部元素。在这个例子中,我将$elem_num设置为0,这是第一个元素。对于外部数组的每个循环,我们获取每个元素(这是一个数组引用),然后,使用$elem_num变量,我们打印出内部数组的第一个元素的内容:

my $elem_num = 0;

for my $elem (@multarray){
    print "$elem->[$elem_num]\n";
}

相关问题