将-1分配给$#数组做什么?

Mee*_*shi 4 perl

拿这个代码:

$#mdCntrs = -1;
Run Code Online (Sandbox Code Playgroud)

$#array返回数组的最后一个元素的索引,并-1在数组为空时返回.

但这个分配-1,这是什么意思?

Mar*_*cus 8

它改变了数组的长度,在这种情况下它将清除整个数组.

来自perldoc perldata:

分配$#days实际更改数组的长度.以这种方式缩短阵列会破坏干预值.

它继续说:

以下是等效的:

    @whatever = ();
    $#whatever = -1;
Run Code Online (Sandbox Code Playgroud)

  • 在实践中,我更喜欢使用`@foo =()`,因为它更清晰. (7认同)