小池啓仁 ヒロヒト応援ブログ By はてな

小池啓仁(コイケヒロヒト)の動画など。

小池啓仁 ヒロヒト応援ブログ By はてな

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));

実行結果

C:\Documents and Settings\xxx>perl null.pl
$aaa == 未定義
$ddd == 未定義
$ggg == 未定義
@hhh == 未定義
@kkk == 未定義
@nnn == 未定義
%ooo == 未定義
%ppp == 未定義
%rrr == 未定義