perl 引用备忘

简介:
 
  1. //$ref是一个匿名数组引用,同时嵌套着匿名数组引用,匿名散列引用 
  2. my $ref = [1,2,3,['a','b','c'],{a=>1,b=>2,c=>3,},]; 
  3.  
  4. //访问其中的一个元素1
  5. printf "%d\n",$ref->[0]; 
  6. printf "%d\n",$$ref[0]; 
  7. printf "%d\n",${$ref}[0]; 
  8.  
  9. //访问其中的一个嵌套的匿名数组引用的值a
  10. printf "%s\n",$ref->[3]->[0]; 
  11. printf "%s\n",$$ref[3][0]; 
  12. printf "%s\n",${$ref}[3][0]; 
  13.  
  14. //访问其中的一个嵌套的匿名散列引用
  15. printf "%d\n",$ref->[4]->{a}; 
  16. printf "%d\n",${$ref}[4]{a}; 
  17.  
  18. print @{$ref->[3]},"\n"; 
  19. print keys %{$ref->[4]},"\n"; 
  20. print values %{$ref->[4]},"\n"; 
  21.  
  22. my $i = 0
  23.  
  24. while ($i < 3) { 
  25.        print $ref->[3]->[$i],"\n"; 
  26. }continue{$i++;}; 
  27.                                   

 一个使用引用的sample

 
  1. my $ref = {}; 
  2.  
  3. open my $file,'<','/etc/passwd' or die "$!\n"; 
  4.  
  5. while (<$file>) { 
  6.        chomp; 
  7.        my @array = split /:/; 
  8.  
  9.        if ($array[6]) { 
  10.           if (exists $ref->{$array[6]}) { 
  11.               ${$ref}{$array[6]} ++; 
  12.           } 
  13.           else { 
  14.               ${$ref}{$array[6]} = 1; 
  15.           } 
  16.        } 
  17.  
  18.  
  19. close $file; 
  20.  
  21. =head 
  22. for my $str (sort keys %$ref) { 
  23.     printf "%-20s%d\n",$str,$ref->{$str}; 
  24. =cut 
  25.  
  26. while (my ($key,$val) = each %$ref) { 
  27.        printf "%-20s%d\n",$key,$val; 

 本文转自dongfang_09859 51CTO博客,原文链接:http://blog.51cto.com/hellosa/703370,如需转载请自行联系原作者

相关文章
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
Perl
|
1月前
|
移动开发 Perl
|
1月前
|
存储 移动开发 Perl
|
4月前
|
PHP Python
关于python变量的再次折腾,没有PHP的引用赋值
今天,重看php文档的时候,发现了这样的讲法
15 0
|
PHP
常见 PHP (5.4.24) 编译错误解决方法[备忘]
参见编译错误信息 configure: error: GD build test failed. Please check the config.log for details. 解决方法:  把编译包全部安装 export LANG=en_US yum grouplist | grep Deve yum groupinstall -y "返回的包组名称" 返回的包组名称" 返回
1755 0