2. 区分散列的 undef 值, 和手动赋值 0 不一样。1. 使用exists函数,散列中有这个键(必须是keys %hash 有这结果),则返回真值,

 

2.

    123 my %vertical_alignment;
    124 $vertical_alignment{"subscripting"} = 0;
    125 unless($vertical_alignment{"subscripting"}){
    126     print "0\n";
    127 }
    128 unless($vertical_alignment{"anonymous"}){
    129     print "undef.\n";
    130 }

 

 

124行: 不能对散列中的  元素?  再加  my 关键字, 直接操作就可以

 

如下,散列中的值需手动定义为undef

1.

      6 my %vertical_alignment;
      7 $vertical_alignment{"subscripting"} = 0;
      8 unless($vertical_alignment{"array_ref"}){
      9     print "0\n";
     10 }   
     11 printf keys %vertical_alignment;
     12 if( exists $vertical_alignment{"array_ref"}){
     13     print "\nthere is a library card for subscripting\n";
     14 }
     15 else{
     16     print "\nno card.\n";
     17 }
     18 $vertical_alignment{"array_ref"} = undef;
     19 printf keys %vertical_alignment;
     20 if( exists $vertical_alignment{"array_ref"}){
     21     print "\nthere is a library card for subscripting\n";
     22 }
     23 else{
     24     print "a o.\n";
     25 }

输出:

0
subscripting
no card.
subscripting
there is a library card for subscripting

 

 

   

 

posted @ 2019-06-14 11:19  jimy1  阅读(223)  评论(0编辑  收藏  举报
Total Visits
AmazingCounters.com