取消定義 EXPR 的值,它必須是左值。僅用於純量值、陣列 (使用 @
)、雜湊 (使用 %
)、子常式 (使用 &
) 或類型球 (使用 *
)。說 undef $hash{$key}
可能不會對大多數預定義變數或 DBM 清單值執行您預期的操作,所以不要這樣做;請參閱 delete
。總是傳回未定義的值。您可以省略 EXPR,這種情況下沒有任何未定義,但您仍然會取得未定義的值,例如,您可以從子常式傳回、指派給變數或傳遞為參數。範例
undef $foo;
undef $bar{'blurfl'}; # Compare to: delete $bar{'blurfl'};
undef @ary;
undef %hash;
undef &mysub;
undef *xyz; # destroys $xyz, @xyz, %xyz, &xyz, etc.
return (wantarray ? (undef, $errmsg) : undef) if $they_blew_it;
select undef, undef, undef, 0.25;
my ($x, $y, undef, $z) = foo(); # Ignore third value returned
請注意,這是一元運算子,而不是清單運算子。