哈希的卷曲括号

时间:2012-09-09 20:47:38

标签: perl

在Perl中创建了如下结构?

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

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

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

3 个答案:

答案 0 :(得分:5)

{ ... }中的数据是散列引用。

( ... )中的数据是一个列表,但上下文使其成为哈希值。

答案 1 :(得分:3)

嗯,它仍然是一个哈希 - 但是一个匿名的哈希。其引用分配给$selfThe 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 );