defined 演算子を使うと、undef を 0 や ''(空文字列) といった値と区別することができます。
変数を undef にするには次のようにします。
undef $scalar; # スカラー変数を undef にする
undef @array; # 配列変数を undef にする
undef %hash; # ハッシュ変数を undef にする
スカラー変数だけは次のように代入で undef にすることができます。
$scalar = undef;
配列変数に undef を代入すると、undef 要素が 1 つある配列になってしまいます。
@array = undef; # @array = (undef); と同じ