perl 中的引用

2021-09-07 12:23:34 字數 1512 閱讀 7491

perl 語言中的引用共分為兩類:

宣告引用時只需要在物件的前面加上反斜槓

第一列是陣列的引用:

**示例:

my

@array = (1, 2, 3

);my

$array_ref = \@array;

第二種是雜湊的引用

**示例:

my

%hash = (1, 2, 3, 4

);my

$hash_ref = \@hash;

通過引用去訪問對應的值,通過 -> 操作符

陣列的引用, 通過 [ ] 中括號 加上對應的下標,**示例:

my

@array = (1, 2, 3

);my

$array_ref = \@array

;print

$array_ref->[0];

雜湊的引用,通過{}  大括號加上對應的key,**示例:

my

%hash = (1, 2, 3, 4

);my

$hash_ref = \@hash

;print

$array_ref->;

當我們想要把引用對應的變數傳遞給另外乙個變數時,就需要解引用,使用 大括號

**示例:

my

@array = (1, 2, 3

);my

$array_ref = \@array;my

@array_new = @;

my%hash = (1, 2, 3, 4

);my

$hash_ref = \@hash;my

%hash_new = %;

陣列的引用通過 @ 符號 , 雜湊的引用通過 % 符號;

引用實際上儲存的是所引用物件的位址,舉個例子

perl -e '

my @a = (1, 2, 3, 4);my $b = \@a;print qq;

'array(

0x122bae8

)perl -e '

my %a = (1, 2, 3, 4);my $b = \%a;print qq;

'hash(

0x262dae8)

從上述**的執行結果可以看出,陣列的引用對應的值是 array+ 位址,雜湊的引用是hash+ 位址,這裡的位址是乙個16進製制的值

除了使用 \ 符號, 宣告乙個引用外,還可以宣告乙個匿名引用, 陣列的引用使用 [  ] 操作符, 雜湊的引用使用 操作符;

**示例:

my

$array_ref = [1, 2, 3, 4

];my

$hash_ref =

print

$array_ref->[0

];print

$hash_ref->;

perl陣列硬引用 perl中的引用

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

Perl中的直接引用

perl 中的直接引用 1 一般的標量引用,如 sub add a 1 b 2 add a,b print a,b n 輸出 2,3。說明 取變數的引用可以用 符號。解引用用 符號。2 陣列的引用 陣列的引用和標量的引用一樣,在陣列名前面加 只是在解引用的時候,使用 符號。如 abc 1,2,3 r...

Perl 函式引用

函式的引用 ref func func的定義在其他位置 不要 當 func 時為執行函式,返回值再引用。當 func 時為執行函式,返回值再引用。oracle jhoa 3 cat 3.pl sub generate greeting 引用 rs generate greeting print rs...