zoukankan      html  css  js  c++  java
  • perl 哈希(hash)学习笔记(一)

    1.什么是哈希

      哈希是perl的一种数据类型,比较类似数组,用于存放数据,包括2部分关键字keys和值value。不同于数组,哈希访问元素的是按照名字访问标量的key=>value.

    hash 用% 来标示

    2.hash 操作

       a.增加

         my %hash; //定义

      第一种写法:$hash{'author'}="Young";  #author 是关键字,Young 是value     与数组一样,hash作为整体时候是这样%hash 带标示符%,作为单个元素使用要使用$而不是%

         第二种写法: my %food=('fruit',"apple",'drink',"Coco");         #类似数组初始化 注意这里使用的是( )不是{}  {},用了它实际就是创建了一个引用,正确的就是(),圆括号否则会报 Reference found where even-sized list expected at hash.pl line 4.

       第三种写法:my %fruit=(apple=>"fruit",banana=>'fruit');    #     =>是perl运算符,用于hash    

       b.使用hash值

           单个使用:$hash{'author'};         #       $哈希名{$keyword}

           全部使用:foreach $key (keys %food) 

                          {   

                                      print  print "$key=>$food{$key}\n";     #使用keys %food 遍历%food的每一个关键字

                               }      

           获取所有的key:my  @key=keys %fruit;

           获取所有的value:  my @value=values  %fruit;                                           

    3.hash 函数 exists 和delete

       判断 某个关键字是否存在 exists $hash{'auther'}

       删除某个关键字 delete %hash{$keyword}

       删除整个hash %hash=();

    实例

    #!/usr/bin/perl -w
    my %hash;
    $hash{'author'}="Young";
    my %food=('fruit',"apple",'drink',"Coco");
    my %fruit=(apple=>"fruit",banana=>'fruit');
    print "$hash{'author'}\n";
    foreach $key (keys %food)
    {
            print "$key=>$food{$key}\n";
    }
    my  @key=keys %fruit;
    my @value=values %fruit;
    print @key;
    print @value;
    print "\n";
    print "auther is exists\n" if(exists $hash{'auther'});
    delete $food{'drink'};
    print "after delete some keyword print \%food\n";
    while((my $key,my $value)=each%food)
    {
            print "$key=>$value\n";
    } 
    

    结果:

    /home/Young> perl hash.pl  
    Young
    fruit=>apple
    drink=>Coco
    bananaapplefruitfruit
    after delete some keyword print %food
    fruit=>apple

    转载请注明出处

         

      

    转载请注明出处:http://www.cnblogs.com/tobecrazy/

    软件测试交流QQ群:312937087 we are QA!

  • 相关阅读:
    Spring Boot 2.x实战之StateMachine
    Spring Boot实战之定制type Formatters
    Spring Boot实战之定制URL匹配规则
    Spring Boot项目中如何定制servlet-filters
    Mac高效开发之iTerm2、Prezto和Solarized主题
    Spring Boot应用的健康监控
    Spring Boot构建的Web项目如何在服务端校验表单输入
    Spring Boot项目中如何定制PropertyEditors
    Spring Boot项目中如何定制拦截器
    在Spring Boot项目中使用Spock测试框架
  • 原文地址:https://www.cnblogs.com/tobecrazy/p/3128787.html
Copyright © 2011-2022 走看看