将 EXPR 的值设置为未定义,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
请注意,这是一个一元运算符,而不是列表运算符。