我遇到了以下代码行.它有问题:
它的目的与推动相同
它应该使用推动
它很难阅读,理解
我已经将它改为使用push
它做了我认为非法的事情,但显然不是
这里是:
$array [++$#array] = 'data';
我的问题是:预增量$#数组意味着什么?我一直认为$#array是一个数组的属性,而不是可写的.
perldata说:
"数组的长度是标量值.你可以通过评估$#days来找到数组@days的长度,就像在csh中一样.但是,这不是数组的长度;它是最后一个元素的下标,这是一个不同的值,因为通常有第0个元素.分配给$#days实际上会改变数组的长度.这样缩短数组会破坏干预值.延长先前缩短的数组不能恢复那些数据中的值元素".
修改$#array在某些情况下很有用,但在这种情况下,明显推送更好.