左辺値 EXPR
が real value を持つかどうかを示す boolean 値を返す。
ファイルの終わり、初期化されていない変数、
システムエラーなどの例外的な状況では、define されていない値を返す操作が多い。
この関数は本当のヌル文字列を返すかも知れない操作について、
define されていないヌル文字列と define されているヌル文字列を区別してくれる
(特に配列の要素を参照する操作について)。
また、配列やサブルーチンが存在するかどうかチェックすることもできる。
予め define されていない変数を使用しても、期待された動作は保証されない。
print if defined $switch{'D'};
print "$val\n" while defined($val = pop(@ary));
die "Can't readlink $sym: $!"
unless defined($value = readlink $sym);
eval '@foo = ()' if defined(@foo);
die "No XYZ package defined" unless defined %_XYZ;
sub foo { defined &$bar ? &$bar(@_) : die "No bar"; }
See section undef.