- //$ref是一个匿名数组引用,同时嵌套着匿名数组引用,匿名散列引用?
- my?$ref?=?[1,2,3,['a','b','c'],{a=>1,b=>2,c=>3,},];?
- ?
- //访问其中的一个元素1
- printf?"%dn",$ref->[0];?
- printf?"%dn",$$ref[0];?
- printf?"%dn",${$ref}[0];?
- ?
- //访问其中的一个嵌套的匿名数组引用的值a
- printf?"%sn",$ref->[3]->[0];?
- printf?"%sn",$$ref[3][0];?
- printf?"%sn",${$ref}[3][0];?
- ?
- //访问其中的一个嵌套的匿名散列引用
- printf?"%dn",$ref->[4]->{a};?
- printf?"%dn",${$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%dn",$str,$ref->{$str};?
- }?
- =cut?
- ?
- while?(my?($key,$val)?=?each?%$ref)?{?
- ???????printf?"%-20s%dn",$key,$val;?
- }?