假设我们定义了一个匿名哈希,如下所示:
my $hash = {};
Run Code Online (Sandbox Code Playgroud)
然后使用哈希.然后是时候清空或清除哈希以便重用.经过一些谷歌搜索,我发现:
%{$hash} = ()
Run Code Online (Sandbox Code Playgroud)
和:
undef %{$hash}
Run Code Online (Sandbox Code Playgroud)
两者都将满足我的需求.这两者有什么区别?它们是否都是用于清空哈希的相同方法?
Eth*_*her 24
是的,它们完全相同.两者都从表中删除任何现有的键和值,并将哈希值设置为空列表.
undef EXPR
undef取消定义EXPR 的值,该值必须是左值.仅用于标量值,数组(使用"@"),散列(使用"%"),子程序(使用"&")或typeglob(使用"*")...
示例:
undef $foo;
undef $bar{'blurfl'}; # Compare to: delete $bar{'blurfl'};
undef @ary;
undef %hash;
Run Code Online (Sandbox Code Playgroud)
但是,undef除了标量之外,不应该使用除去任何值的值.对于其他变量类型,将其设置为该类型的"空"版本 - 例如对于数组或散列,@foo = (); %bar = ();
| 归档时间: |
|
| 查看次数: |
56682 次 |
| 最近记录: |