| 網路管理語言 Perl 入門與實作: | ||
|---|---|---|
| <<< Previous | Next >>> | |
什麼是參考(reference)?
所謂 "參考" 是指:一個純量變數,內含另一個變數的位址。在 Perl 中,稱此種參考為硬參考(Hard Reference)。
參考是 Perl 架構複雜資料結構的基石,在增進副程式傳值效率方面也有大用,更是 Perl 運用物件導向技術時重要的依靠。因此了解參考,是踏入 Perl 進階層級的第一步。參考的運算子為 \ 這個符號,只要在變前前加上 \ 即可。
Perl 常見的參考有以下幾種:
1. 純量參考:
$num=56; # $scalar_ref 內含 $num 的位址 $scalar_ref = \$num; # 只要在參考之前加上 $ ,即可取得原參考對象的內含值(即 56) print $$scalar_ref; |
2. 陣列參考:
@total=(1,2,4); $array_ref = \@total; # 只要在參考之前加上 @ ,即可取得原參考對象,即 @total print @$array_ref; |
3. 雜湊參考:
%all=(
mmm => "KKK",
nnn => "MMM"
);
$hash_ref = \%all;
# hash 參考可以利用 -> 來取得其鍵/值
print $hash_ref->{mmm};
# 加上 % 可以取得原雜湊
@keys = keys %$hash_ref; |
4. 副程式參考:
sub max {
my ($a, $b) = @_;
($a > $b) ? $a : $b;
}
# $sub_ref 為 &max 副程式的參考
$sub_ref = \&max;
# 加上 & 即可呼叫該副程式
$max = &$sub_ref(5, 18);
print $max; |
5. 檔案代碼參考(glob reference):
sub write_it {
my $file= shift;
print $file "test .....\n";
}
open(FHD, "> test.log") || die "$!\n";
# 將檔案代碼 FHD 傳入 write_it 副程式中
write_it(\*FHD);
close(FHD); |
| <<< Previous | Home | Next >>> |
| 8.6 習題 | 9.2 副程式傳參考 |