燈明ブログ

現状は小池啓仁の応援ブログ

ハッシュの要素数を求めるには?

配列の要素数は、配列変数をスカラーコンテキストで評価すると求められます。
では、ハッシュの要素数は、どのように求めればよいでしょうか・・・。
こたえ、keys関数(または、values関数)のリターン値をスカラーコンテキストで評価して求めます。

◆サンプル

use strict;
use warnings;

my %hash = (aaa => 111, bbb => 222, ccc => 333);
print scalar(keys(%hash)), "\n";

◆補足

ちなみに、printで、scalar関数を使わないとリストコンテキストになり、ハッシュのキー値が表示されます。
なので、要素数を表示するときは、scalar関数で強制的にスカラーコンテキストにします。