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

Gen*_* S. 1 arrays perl multidimensional-array

我再次忘记了如何$_在二维数组的循环中表示数组.

foreach(@TWO_DIM_ARRAY){
   my @ARRAY = $_;
}
Run Code Online (Sandbox Code Playgroud)

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

Jan*_*der 5

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

好吧,实际上我根本就不会使用$_,特别是因为你可能想要迭代@$_,然后你$_也在内循环中使用隐式,然后你可能弄得一团糟找出$_哪个,或者如果是甚至合法.这可能就是你首先要复制到@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;
}
Run Code Online (Sandbox Code Playgroud)