我的问题基本上是一个技术问题;
如果我想将一个元素添加到二维数组中,我会这样做:
$array[$i][$#{$a[$i]}+1]=$new_scalar_to_add;
这是正确的方法吗
push
我现在通常对于一维数组可以通过as将元素添加到数组中
push(@array, $new_scalar_to_add);
我的问题是,有更好的方法将元素添加到数组中,还是两种方法等效?
我的问题基本上是一个技术问题;
如果我想将一个元素添加到二维数组中,我会这样做:
$array[$i][$#{$a[$i]}+1]=$new_scalar_to_add;
这是正确的方法吗
push
我现在通常对于一维数组可以通过as将元素添加到数组中
push(@array, $new_scalar_to_add);
我的问题是,有更好的方法将元素添加到数组中,还是两种方法等效?
推有什么问题?
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+1
orscalar @array
语法。更好用push
。