天天看點

perl 引用備忘

//$ref是一個匿名數組引用,同時嵌套着匿名數組引用,匿名散列引用 

my $ref = [1,2,3,['a','b','c'],{a=>1,b=>2,c=>3,},]; 

//通路其中的一個元素1

printf "%d\n",$ref->[0]; 

printf "%d\n",$$ref[0]; 

printf "%d\n",${$ref}[0]; 

//通路其中的一個嵌套的匿名數組引用的值a

printf "%s\n",$ref->[3]->[0]; 

printf "%s\n",$$ref[3][0]; 

printf "%s\n",${$ref}[3][0]; 

//通路其中的一個嵌套的匿名散列引用

printf "%d\n",$ref->[4]->{a}; 

printf "%d\n",${$ref}[4]{a}; 

print @{$ref->[3]},"\n"; 

print keys %{$ref->[4]},"\n"; 

print values %{$ref->[4]},"\n"; 

my $i = 0; 

while ($i < 3) { 

       print $ref->[3]->[$i],"\n"; 

}continue{$i++;}; 

 一個使用引用的sample

my $ref = {}; 

open my $file,'<','/etc/passwd' or die "$!\n"; 

while (<$file>) { 

       chomp; 

       my @array = split /:/; 

       if ($array[6]) { 

          if (exists $ref->{$array[6]}) { 

              ${$ref}{$array[6]} ++; 

          } 

          else { 

              ${$ref}{$array[6]} = 1; 

       } 

close $file; 

=head 

for my $str (sort keys %$ref) { 

    printf "%-20s%d\n",$str,$ref->{$str}; 

=cut 

while (my ($key,$val) = each %$ref) { 

       printf "%-20s%d\n",$key,$val; 

 本文轉自dongfang_09859 51CTO部落格,原文連結:http://blog.51cto.com/hellosa/703370,如需轉載請自行聯系原作者

上一篇: perl 求和