与数组类似,通过引用访问哈希表的元素形式为$$pointer{$index},当然,$index是哈希表的键值,而不仅是数字。还有几种访问形式,此外,构建哈希表还可以用=>操作符,可读性更好些。下面再看一个例子:
1 #!/usr/bin/perl 2 # 3 # Using Array references 4 # 5 %weekday = ( 6 '01' => 'Mon', 7 '02' => 'Tue', 8 '03' => 'Wed', 9 '04' => 'Thu', 10 '05' => 'Fri', 11 '06' => 'Sat', 12 '07' => 'Sun', 13 ); 14 $pointer = \%weekday; 15 $i = '05'; 16 printf "\n ================== start test ================= \n"; 17 # 18 # These next two lines should show an output 19 # 20 printf '$$pointer{$i} is '; 21 printf "$$pointer{$i} \n"; 22 printf '${$pointer}{$i} is '; 23 printf "${$pointer}{$i} \n"; 24 printf '$pointer->{$i} is '; 25 26 printf "$pointer->{$i}\n"; 27 # 28 # These next two lines should not show anything 29 # 30 printf '${$pointer{$i}} is '; 31 printf "${$pointer{$i}} \n"; 32 printf '${$pointer->{$i}} is '; 33 printf "${$pointer->{$i}}"; 34 printf "\n ================== end of test ================= \n"; 35 结果输出如下:
================== start test ================= $$pointer{$i} is Fri ${$pointer}{$i} is Fri $pointer->{$i} is Fri ${$pointer{$i}} is ${$pointer->{$i}} is ================== end of test ================= 可以看到,前三种形式的输出显示了预期的结果,而后两种则没有。当你不清楚是否正确时,就输出结果看看。在Perl中,有不明确的代码就用print语句输出来实验一下,这能使你清楚Perl是怎样解释你的代码的。
|