広告
広告
左辺値 EXPR が実際に値を持つか否かを示すブール値を返す関数です。多くの演算子が、EOF や未初期化変数、システムエラーといった例外的な条件で未定義値を返すようになっています。この関数は配列の要素の参照のように実際にヌル文字列を返す演算について、未定義のヌルスカラと定義済みのヌルスカラを区別するときに使います。配列やサブルーティンの存在を確かめることもできます。あらかじめ定義された予約変数に対して用いても直感的に想像できるような値を返すことは保証されていません。ハッシュの要素に対して用いると、value が定義されているか否かを返すものであって、ハッシュに key が存在するか否かを返すのではありません(これには、exists() を使う)。
# スカラ print 1 if defined $name; # 配列 print 1 if defined(@list); #ハッシュの要素に対して使うと、キーの値が定義されているかどうかを返す # ハッシュ print 1 if defined %hash; print 1 if defined $hash{'NAME'}; #関数が定義されているかどうかの判定 #サブルーチン sub function { defined &$func ? &$func(@_) : (); }
広告