perl hash

    技术2022-05-19  29

    perl hash常用方法

    2009-08-05 19:25

    #!/usr/bin/perl -w

    #1、基本

    $family_name{"fred"}="flintstone"; //基本付值key/vaue

    $family_name{"barney"}="rubble";

    foreach $person(qw<barney fred>)   //指定key集合遍历

    {

    print "I've heard of $person $family_name{$person}./n";

    }

    #2、整个hash付值% 方法有三种

    %alphabet=('a','apple','b','ball','c','cat','x','xyophone');// key,value

    %alphabet=('a'=>'apple','b'=>'ball','c'=>'cat','x'=>'xyophone');//key=>value

    %alphabet=('a','apple','b','ball','c'=>'cat','x'=>'xyophone');//两都混合也行

    foreach $v (keys(%alphabet)) //根据key值遍历,keys(%alphabet)是key集合

    {                             //同理values(%alphabet)是values集合

     

    print "$v--->$alphabet{$v}/n";

    }

     

    @value=keys(%alphabet);

    print "@value","/n"; //输出所有key值,如:a b c x ;"/n"代表最后换行 

    print @value,"/n"; //输出所有key值,如:abcx;(注意二都区别,不带引号)"/n"代表最后换行

     

    #常用第二种遍历方法

    while(($key,$value)=each(%alphabet))//each代表key/value实休

    {

    print "$key is for $value/n";

    }

    #3、常用算法.....................

    #3、1赋值

    $family_name{"fred"}="aaaaaaaa";

    print family_name{"fred"};//取值 输出 aaaaaaaa

    #3、2 exists 是否存在某key

    if(exists $alphabet{'a'})

    {

    print "true/n";

    }

    #3、3 delete

    my $var=a; //my 局部作用域

    delete $alphabet{$var};//册除

     

    #3、4计算hash表元素个数

    my $count=keys%alphabet;

    print $count,"/n";

     

    #3、5 sort 排序 

    foreach $v (sort keys(%alphabet)) //根据key排序输出。。

    }

    #3、7 hash拷贝

    %new_hash=% alphabet;

     

    #3、8 reverse

    %new_hash=reverse % alphabet; // % alphabet的内容为key/value;%new_hash的内容为vlue/key 

                                   //当% alphabet的value有重复时,为了保持key唯一性,%new_hash的内容重复的将丢失;


    最新回复(0)