在Perl中创建了如下结构?
my $self = { Name => $name, Color => $class->default_color };
如果是哈希,那么官方符号不是以下(括号,%
而不是$
):
my %self = ( Name => $name, Color => $class->default_color );
答案 0 :(得分:5)
{ ... }
中的数据是散列引用。
( ... )
中的数据是一个列表,但上下文使其成为哈希值。
答案 1 :(得分:3)
嗯,它仍然是一个哈希 - 但是一个匿名的哈希。其引用分配给$self
。 The doc说:
可以使用大括号创建对匿名哈希的引用:
$hashref = {
'Adam' => 'Eve',
'Clyde' => 'Bonnie',
};
答案 2 :(得分:3)
Perl没有散列的文字表示,因此我们将散列创建为键值对列表。匿名散列构造函数或对命名散列的赋值将键值对列表转换为散列。
顶行创建一个哈希引用,您可以将其指定给标量变量:
my $self = { Name => $name, Color => $class->default_color };
底线将列表分配给命名哈希:
my %self = ( Name => $name, Color => $class->default_color );