代码之家  ›  专栏  ›  技术社区  ›  Yevgeny Simkin

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

  •  1
  • Yevgeny Simkin  · 技术社区  · 14 年前

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

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

    这就是目的,但不起作用。正确的方法是什么?

    3 回复  |  直到 14 年前
        1
  •  5
  •   Jander    14 年前

    线 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;
    }
    
        2
  •  4
  •   zakovyrya    14 年前
    for (@TWO_DIM_ARRAY) {
        my @arr = @$_;
    }
    
        3
  •  4
  •   codaddict    14 年前

    这个 $_ 将排列 参考文献 (不是) 数组 ,因此您需要将其取消引用为:

    my @ARRAY = @$_;