//$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,如需轉載請自行聯系原作者