小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

配列要素数と最大インデックス

配列要素数は、たとえば「@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";
}

実は、要素数と最大インデックスを勘違いして、はまることがあるのです(自戒)。