undef EXPR
undef

将 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

请注意,这是一个一元运算符,而不是列表运算符。