perl學習總結之引用

2021-06-05 11:31:10 字數 1641 閱讀 4437

建立引用

建立規則1:在陣列或者雜湊前加反斜槓

$aref = \@array;         # $aref now holds a reference to @array

$href = \%hash;          # $href now holds a reference to %hash

當引用被儲存在變數裡,就可以如普通變數般使用。

建立規則2: [items]建立乙個新的匿名陣列,且返回乙個指向陣列的引用。建立乙個新的匿名雜湊,且返回乙個指向雜湊的引用。

$aref = [ 1, "foo", undef, 13 ];

# $aref now holds a reference to an array

$href = ; 

# $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:@ instead of @array

@a                    @                       an array

reverse @a      reverse @        reverse the array

$a[3]                 $[3]                      an element of the array

$a[3] = 17;       $[3] = 17           assigning an element

%h                      %                   a hash

keys %h             keys %         get the keys from the hash

$h              $           an element of the hash

$h = 17     $ =     17  assigning an element

使用規則 2

規則1的寫法比較難於閱讀,所以,們可以用簡寫的形式,來方便的閱讀引用。

$[3]   $aref->[3]

$   $href->

以上兩種寫法表達的是相同的內容

箭頭規則

@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  這樣,看起來就像是真正的二維資料了。

原文出處:

perl陣列硬引用 perl中的引用

為什麼使用引用?在perl4中,hash表中的value欄位只能是scalar,而不能是list,這對於有些情況是很不方便的,比如有下面的資料 chicago,usa frankfurt,germany berlin,germany washington,usa helsinki,finland n...

perl學習筆記 解引用小結

目前正在自學perl,看到關於dereference的一些寫法 array1 qw a b c array2 qw d e f array array ref array 假如要訪問array1中的第2個元素,可以有如下幾種寫法 array 0 1 寫法一 0 1 寫法二 array ref 0 1...

Perl 引用(即指標) 學習筆記

前言 perl引用就是指標,可以指向變數 陣列 雜湊表 也叫關聯陣列 甚至子程式。pascal或c程式設計師應該對引用 即指標 的概念很熟悉,引用就是某值的位址,對其的使用則取決於程式設計師和語言的規定。在perl中,可以把引用稱為指標,二者是通用的,無差別的。引用在建立複雜資料方面十分有用。下面的...