燈明ブログ

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

ハッシュが空かどうかを調べたい

ハッシュが空かどうかを調べたいときは、以下のサンプルを参考にしてください。
決して、defined()の否定を使わないように、defined()は、スカラーで未定義の判定に使います。

◆サンプル

%hash =();
#%hash = (aaa => 111, bbb => 222, ccc => 333);
if (!%hash) {
    print '空です!', "\n";
}
else{
    print '空でない!', "\n";
}

◆引用

defined(%hash) is deprecated
(D deprecated) defined() は未定義の スカラ 値を調べるので、ハッシュに使っても普通は無意味です。ハッシュが空かどうかを調べたい場合は、例えば単に if (%hash) { # not empty } としてください。

http://perldoc.jp/docs/perl/5.6.1/perldiag.pod

◆リンクメモ