配列の要素数は、配列変数をスカラーコンテキストで評価すると求められます。
では、ハッシュの要素数は、どのように求めればよいでしょうか・・・。
こたえ、keys関数(または、values関数)のリターン値をスカラーコンテキストで評価して求めます。
◆サンプル
use strict;
use warnings;
my %hash = (aaa => 111, bbb => 222, ccc => 333);
print scalar(keys(%hash)), "\n";
◆補足
ちなみに、printで、scalar関数を使わないとリストコンテキストになり、ハッシュのキー値が表示されます。
なので、要素数を表示するときは、scalar関数で強制的にスカラーコンテキストにします。