0

我的问题基本上是一个技术问题;

如果我想将一个元素添加到二维数组中,我会这样做:

$array[$i][$#{$a[$i]}+1]=$new_scalar_to_add;

这是正确的方法吗

push我现在通常对于一维数组可以通过as将元素添加到数组中

push(@array, $new_scalar_to_add);

我的问题是,有更好的方法将元素添加到数组中,还是两种方法等效?

4

1 回答 1

4

推有什么问题?

perl -MData::Dumper -E'
   @arr = ([1,2,3],[6,5,4],[7,8,9]);
   push @{ $arr[$_] }, int rand 9 for (0..$#arr);
   say Dumper \@arr;
'

您的方法将不起作用,因为$#array意味着“数组的最后一个元素的数量”,您没有添加新元素,您只需重新定义最后一个元素。

 perl -MData::Dumper -E'
    @arr = ([1,2,3],[6,5,4],[7,8,9]);
    $arr[1][$#arr] = 777;
    say Dumper \@arr;
 '

如果你想添加它,你需要使用$#array+1orscalar @array语法。更好用push

于 2013-10-26T15:38:31.127 回答