我知道:
my %hash = {};
Run Code Online (Sandbox Code Playgroud)
得到一个匿名哈希,这个怎么样:
my %hash = %{some values}
Run Code Online (Sandbox Code Playgroud)
上面与此有什么不同?
my %hash = (some hash values);
Run Code Online (Sandbox Code Playgroud)
没有.
my %hash = {};
Run Code Online (Sandbox Code Playgroud)
生成一个警告(你打开它们,对吧?):
Reference found where even-sized list expected at -e line 1.
Run Code Online (Sandbox Code Playgroud)
参考始终是标量.正确的方法是
my $hash_ref = {};
Run Code Online (Sandbox Code Playgroud)
要取消引用引用,可以使用以下语法:
my %hash = %$hash_ref;
my %also_hash = %{$hash_ref}; # Same as above.
$hash{key} eq $hash_ref->{key} or die; # Should survive.
Run Code Online (Sandbox Code Playgroud)
此外,
%{ some values }
Run Code Online (Sandbox Code Playgroud)
生成语法错误:
perl -we 'my $h = %{1, 2, 3, 4}'
syntax error at -e line 1, near "%{"
Run Code Online (Sandbox Code Playgroud)