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

时间:2010-10-14 03:59:39

标签: arrays perl multidimensional-array

我再次忘记了如何在{2}数组的循环中使$_表示数组。

foreach(@TWO_DIM_ARRAY){
   my @ARRAY = $_;
}

这是意图,但这不起作用。这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:5)

my @ARRAY = @$_;(而不是= $_;)是您正在寻找的,但除非您明确要复制引用的数组,否则我会直接使用@ $ _。 / p>

嗯,实际上我根本不会使用$_,特别是因为您可能想要遍历@$_,然后在内部循环中使用隐式$_同样,你可能会弄清楚哪个$_是哪个,或者哪个甚至是合法的。这可能就是你首先要复制到@ARRAY的原因。

无论如何,这就是我要做的事情:

for my $array_ref (@TWO_DIM_ARRAY) {

    # You can iterate through the array:
    for my $element (@$array_ref) {
        # do whatever to $element
    }

    # Or you can access the array directly using arrow notation:
    $array_ref->[0] = 1;
}

答案 1 :(得分:4)

for (@TWO_DIM_ARRAY) {
    my @arr = @$_;
}

答案 2 :(得分:4)

$_将是数组引用(不是数组),因此您需要将其取消引用为:

my @ARRAY = @$_;