perl 引用(一)

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結構體,使用二維數組(下一次總結)

相關文章
相關標籤/搜索