網路管理語言 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 副程式傳參考 |