Perl で変数が定義されているか判定しよう
Perl で変数の中身の真偽を判定する場合、変数を if に放り込んでやるのが簡単です。
if($scalar){ # 結果が真の場合の処理 }
この場合、結果が “偽” になるのは $scalar の値が 0(ゼロ)か空の文字列("")か未定義(undef)の場合です。
いやいや、0 や空の文字列はいいんだよ、未定義の場合だけ拾いたいんだ。という場合には、defined を使います。使い方は以下の通り
if(defined $scalar){ # $scalar が未定義でなかった場合の処理 }
データベースから取ったデータを扱っていると、戻り値が NULL だった場合 Perl では undef として扱われるので、そのチェックでよくお世話になります。
関連エントリー
・Perl で変数が未定義か判定する関数を書いてみた