配列要素数と最大インデックス
配列要素数は、たとえば「@result」の場合、「$#result + 1」です。
配列のインデックスはゼロからなので、「$#result」は、あくまでも最大インデックスなのです。
ただし、空の配列「@result = ()」の場合の「$#result」は、「-1」を返します。
use strict; use warnings; my @result = (); if ($#result == -1) { print "データが空です。\n"; @result = ("aaa", "bbb", "ccc"); print "最大インデックス = $#result \n"; }
実は、要素数と最大インデックスを勘違いして、はまることがあるのです(自戒)。