最近まで undef を定義済みの値みたいに扱っていたけれど、undefはどうやら関数。
undef @array みたいに使えるんだから、よく考えたら当たり前か。
これに関連して、Perlは定義済み定数と見なせる関数は、コンパイル時にホントに関数を定義済み
定数のようにしてしまうらしい。
sub PI () { 3.14 }
$scalar = 5 * PI;
のように定数を返すサブルーチンを書くと、PIはコンパイル時に3.14に書き換えられ、
$scalar = 5 * 3.14;
と書くのと全く同じ状態になるらしい。