PerlでのNULL
DBとか他の言語では、NULL値というものがありますが、Perlにはありません。
しかし、Perlには、ほぼ同じ概念の未定義値があります。
未定義値は、以下のように2通りの方法で設定することができます。
- 空リスト()を代入する方法
- undef関数を実行する方法
ちなみに、宣言しただけの状態の時も未定義値です。
テストサンプル
$aaa; $bbb = ""; $ccc = 0; $ddd = (); $eee = {}; $fff = ; undef $ggg; @hhh; @iii = ""; @jjj = 0; @kkk = (); @lll = {}; @mmm = ; undef @nnn; %ooo; %ppp = (); undef %rrr; print '$aaa == 未定義', "\n" if (!defined($aaa)); print '$bbb == 未定義', "\n" if (!defined($bbb)); print '$ccc == 未定義', "\n" if (!defined($ccc)); print '$ddd == 未定義', "\n" if (!defined($ddd)); print '$eee == 未定義', "\n" if (!defined($eee)); print '$fff == 未定義', "\n" if (!defined($fff)); print '$ggg == 未定義', "\n" if (!defined($ggg)); print '@hhh == 未定義', "\n" if (!defined(@hhh)); print '@iii == 未定義', "\n" if (!defined(@iii)); print '@jjj == 未定義', "\n" if (!defined(@jjj)); print '@kkk == 未定義', "\n" if (!defined(@kkk)); print '@lll == 未定義', "\n" if (!defined(@lll)); print '@mmm == 未定義', "\n" if (!defined(@mmm)); print '@nnn == 未定義', "\n" if (!defined($nnn)); print '%ooo == 未定義', "\n" if (!defined(%ooo)); print '%ppp == 未定義', "\n" if (!defined(%ppp)); print '%rrr == 未定義', "\n" if (!defined(%rrr));