perl學習總結之引用

建立引用
建立規則1:在數組或者哈希前加反斜槓
    $aref = \@array;         # $aref now holds a reference to @array
    $href = \%hash;          # $href now holds a reference to %hash
    當引用被儲存在變量裏,就能夠如普通變量般使用。

建立規則2: [items]建立一個新的匿名數組,且返回一個指向數組的引用。{items}建立一個新的匿名哈希,且返回一個指向哈希的引用。 
    $aref = [ 1, "foo", undef, 13 ]; 
    # $aref now holds a reference to an array

    $href = { APR => 4, AUG => 8 };  
    # $href now holds a reference to a hash
規則1,規則2的比較:
        # This:
        $aref = [ 1, 2, 3 ];

        # Does the same as this:
        @array = (1, 2, 3);
        $aref = \@array;

使用引用數組

使用規則 1
 使用引用的時候,你能夠將變量放到大括號裏,來代替數組. eg:@{$aref} instead of @array
        @a              @{$aref}                       An array
        reverse @a      reverse @{$aref}        Reverse the array
        $a[3]           ${$aref}[3]                      An element of the array
        $a[3] = 17;     ${$aref}[3] = 17           Assigning an element

        %h              %{$href}                   A hash
        keys %h         keys %{$href}         Get the keys from the hash
        $h{'red'}       ${$href}{'red'}           An element of the hash
        $h{'red'} = 17  ${$href}{'red'} =     17  Assigning an elementide


使用規則 2
  規則1的寫法比較難於閱讀,因此,們能夠用簡寫的形式,來方便的閱讀引用。
     ${$aref}[3]   $aref->[3]
     ${$href}{red}   $href->{red}
     以上兩種寫法表達的是相同的內容this


箭頭規則
        @a = ( [1, 2, 3],
                    [4, 5, 6],
                    [7, 8, 9]
                  );
        $a[1] 包含一個匿名數組,列表爲(4,5,6),它同時也是一個引用,使用規則2,咱們能夠這樣寫:$a[1]->[2] 值爲6 ;相似的,$a[1]->[2]的值爲2,這樣,看起來像是一個二維數組。  使用箭頭規則,還能夠寫的更加簡單:
       Instead of $a[1]->[2], we can write $a[1][2]
       Instead of $a[0]->[1] = 23, we can write $a[0][1] = 23  這樣,看起來就像是真正的二維數據了。
 element

相關文章
相關標籤/搜索