在perl中将元素添加到二维数组中

时间:2013-10-26 15:28:12

标签: perl

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

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

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

这是一种正确的方法

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

push(@array, $new_scalar_to_add);

我的问题是,有一种更好的方法可以将元素添加到数组中,或者这两种方法是等效的吗?

1 个答案:

答案 0 :(得分: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+1scalar @array语法。更好地使用push

相关问题