加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl语言入门笔记 第六章 哈希(hash)

发布时间:2020-12-15 23:40:39 所属栏目:大数据 来源:网络整理
导读:=pod哈希 哈希表里只是一堆的键值对而已,而没有任何顺序,键可以是任意字符串,值也是 awk的哈希键值对增多的时候会逐渐变慢,而perl没有这个缺点 访问哈希元素: $hash{$some_key} foreach my $person (qw barney fred ) { print "I'v heared of $person $
=pod

哈希

    哈希表里只是一堆的键值对而已,而没有任何顺序,键可以是任意字符串,值也是
    awk的哈希键值对增多的时候会逐渐变慢,而perl没有这个缺点

 访问哈希元素:
    $hash{$some_key}

    foreach my $person (qw< barney fred >)
    {
        print "I'v heared of $person $family_name{$person}.n";
    }
    在挑选哈希名的时候,最好使得哈希名和键之间能放进去一个"for"字,比如"family_name for fred"是filntstone,因此把哈希命名为family_name能清晰地反映出键和值之间的关系。
    $foo = 'bar';
    print $family_name{$foo . 'ney'}; #打印"rubble",连接在一块


    哈希可以被转换成列表

    哈希赋值:
        不是常见用法,但哈希真的可以用一般的赋值语法来赋值;
            my %new_hash = %old_hash;
            得到一个反序的哈希:键值互换
            my %inverse_hash = reverse %any_hash;

 胖箭头:
    my $last_name = (
        'fred' => 'flintstone','dino' => 'undef',);

哈希函数:
    perl中有很多有用的函数可以一次处理整个哈希。
    keys函数能返回哈希的键列表,而values函数能返回对应的值列表。如果哈希没有任何的成员,则两个函数都返回空列表

    my @k = keys %hash;
    my @v = values %hash;
    上面的keys和values是一一对应的
    得到哈希中元素的个数:
        my $count = keys %hash;
        my $count = values %hash;
        if(%hash)
        {   }

    each函数:
        唯一适合使用each的地方
        while(my($key,$value) = each %hash)
        {   }

    foreach函数:
        foreach $key (sort keys %hash)
        {   }

    判断某项哈希元素的真假:
        if($book{$some})
        {   }

    exists函数:
        检查哈希中是否存在某个键,可以使用exists函数
        if(exists $book{"dino"})
        {   }

    delete函数:
        my $person = "betty";
        delete $book{$person}; #撤销$person的借书证
        上面"将undef存入哈希元素"并不相同,在这两种情况下,exists($books{"betty"})会得出相反的结果。在delete之后,键便不会出现在哈希之中,但存入undef后,键却是一定会存在的。

 哈希元素的内插:
    可以将单一哈希元素内插到双引号引起的字符串中。
    foreach $person (sort keys %books)
    {
        if($book{$person})
        {
            print "$person has $books{$person} itemsn";
            #但这种方式不支持内插整个hash表
        }
    }

%ENV哈希:
    print “PATH is $ENV{PATH}n”;

=cut

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读