2012-09-09 70 views
0

在Perl中創建瞭如下結構?散列的大括號

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

如果是亂碼,則是官方符號(圓括號,%代替$)不執行以下操作:

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

http://stackoverflow.com /問題/ 1817394 /什麼最差之間-A-哈希和哈希引用在-perl的 –

+0

真實'的人perldata' –

+0

我想你正在閱讀[中級Perl(HTTP:// WWW .intermediateperl.com)。 :) –

回答

5

數據在{ ... }是散列REF。

(...)中的數據是一個列表,但上下文使其成爲一個散列。

3

那麼,它仍然是一個哈希 - 但一個匿名的。其參考文獻分配給$selfThe doc說:

到可以用大括號來創建一個匿名散列的引用:

$hashref = {  
    'Adam' => 'Eve',  
    'Clyde' => 'Bonnie', 
}; 
3

Perl不具有的哈希值的文字表示,所以我們創建一個散列作爲鍵 - 值對的列表。匿名哈希構造函數或對已命名哈希的賦值將鍵值對列表轉換爲哈希。

頂行創建你分配給一個標量變量的散列參考:

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

底線名單分配給一個叫哈希:

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