我知道:
my %hash = {};
得到一个匿名哈希,这个怎么样:
my %hash = %{some values}
上面那个和这个有什么区别?
my %hash = (some hash values);
不。
my %hash = {};
生成警告(您打开它们,对吗?):
Reference found where even-sized list expected at -e line 1.
参考总是标量。正确的方法是
my $hash_ref = {};
要取消引用引用,您可以使用以下语法:
my %hash = %$hash_ref;
my %also_hash = %{$hash_ref}; # Same as above.
$hash{key} eq $hash_ref->{key} or die; # Should survive.
而且,
%{ some values }
生成语法错误:
perl -we 'my $h = %{1, 2, 3, 4}'
syntax error at -e line 1, near "%{"
不同之处在于您如何表达散列的内容。例如,使用下面的数组表示法;你这样做:
my %hash = ( 'key 1' => 'value 1', 'key 2' => 'value 2');
%{ } 是一个强制转换运算符。它通常在您引用显然不是哈希的东西时使用。通常对 a 的引用具有:
例子:
my $hashref;
$hashref->{'key 1'}='value 1';
$hashref->{'key 2'}='value 2';
my %hash = %{$hashref};