1. 普通變量引用 variable referencehtml
引用就比如C語言的指針,引用變量存儲被引用變量的地址。賦值時注意要在變量前加上 \;使用時要多加一個 $ 。數組
固然,引用也能夠成爲簡單變量,可使用引用的引用,使用時要記得多加一個$.引用也能夠互相賦值函數
1 #!/usr/bin/perl -w 2 my $variable="this is a reference test\n"; 3 my $refv=\$variable; 4 my $refr=\$refv; 5 print "this is \$refv:$refv\n"; 6 print "this is \$variable \$\$refv:$$refv"; 7 print "this is reference's reference \$\$reference :$$refr\n"; 8 print "this is \$variable \$\$\$refr:$$$refr";
D:\>perl reference.pl
this is $refv:SCALAR(0x468b20)
this is $variable $$refv:this is a reference test
this is reference's reference $$reference :SCALAR(0x468b20)
this is $variable $$$refr:this is a reference testthis
2. 數組變量引用 array referencespa
數組引用跟變量引用同樣指針
1 #!/usr/bin/perl -w 2 my @array=qw/this is an array reference test/; 3 my $refa=\@array; 4 print "this is \@array[0]:$refa->[0]\n"; 5 print "this is \@array[1]:$$refa[1]\n"; 6 print "this is \@array use \@\$refa:@$refa\n";
使用一個元素 $$refa[n] 或者$refa->[n]code
使用所有元素:@$refahtm
結果:blog
this is @array[0]:this
this is @array[1]:is
this is @array use @$refa:this is an array reference testget
關於數組使用引用的好處 請參考:http://www.cnblogs.com/tobecrazy/archive/2013/06/11/3131887.html
3. 哈希變量引用 hash reference
哈希引用和變量引用數組引用同樣,只需複製時加上\ ,使用時加上%
1 #!/usr/bin/perl -w 2 my %hash=('a'=>"Hash",'b'=>"reference",'c'=>"test"); 3 my $refh=\%hash; 4 print "this is \$\$refh:$$refh{'a'}\n"; 5 print "use whole hash with \%\$refh \n"; 6 foreach $key (keys %$refh) 7 { 8 print "$key => $$refh{$key}"; 9 print "\n"; 10 }
%$refh 使用整個哈希
$$refh{$key} 使用一個hash 元素
運行結果:
this is $$refh:Hash
use whole hash with %$refh
c => test
a => Hash
b => reference
4. 匿名引用
a.匿名變量
$refva=\"this is anonymous variable\n";
使用方法和變量引用同樣,只須要$$refva
b. 匿名數組 注意使用方括號[],使用方法同數組引用同樣
$refaa=[qw/this is anonymous array/];
c. 匿名哈希 注意使用花括號 {},使用方法同hash引用
$refha{'a'=>"Hash",'b'=>"reference",'c'=>"test" }
總結:
1.引用賦值須要加\ ,使用時變量在引用變量前加$ ,數組加@ 哈希加%
2.引用能夠用在兩個數組在函數中傳遞,避免數組被壓縮成一個數組
3.引用能夠對匿名數組 變量 哈希使用
4.引用能夠創造perl結構體,使用二維數組(下一次總結)