0

在 Perl 中创建如下哪个结构?

my $self = { Name => $name, Color => $class->default_color };

如果它是一个哈希,那么官方符号不是以下(括号,%而不是$):

my %self = ( Name => $name, Color => $class->default_color );
4

3 回答 3

5

中的数据{ ... }是哈希参考。

里面的数据( ... )是一个列表,但是上下文使它变成了一个散列。

于 2012-09-09T20:49:44.353 回答
3

好吧,它仍然是一个哈希 - 但一个匿名的。并将其引用分配给$self. 医生说:

可以使用大括号创建对匿名哈希的引用:

$hashref = {    
  'Adam'  => 'Eve',     
  'Clyde' => 'Bonnie',
};
于 2012-09-09T20:49:10.423 回答
3

Perl 没有散列的文字表示,所以我们创建一个散列作为键值对的列表。匿名散列构造函数或对命名散列的赋值将键值对列表转换为散列。

第一行创建了一个哈希引用,您将其分配给一个标量变量:

my $self = { Name => $name, Color => $class->default_color };

底线将列表分配给命名哈希:

my %self = ( Name => $name, Color => $class->default_color );
于 2012-09-09T22:27:26.857 回答