• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Perl中的哈希(四)

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

Perl中的哈希数据结构。相比较于数组,这种数据结构对于数据查找和统计更加方便。

 

一个特殊的哈希,%ENV,表示当前terminal下,通过setenv设置的variable的键值。

键:环境变量名,,,,值:环境变量值。

 

哈希是一种数据结构,由一对对的键(keys)--值(values)对来组成。

                             这些键和值都是任意的标量,但键总会被转换成字符串而且必须是唯一的字符串。

访问哈希元素,    $hash{$some_key}    ##和访问数组的做法类似,只是使用了花括号{}而非方括号[]。

                                                              访问哈希表中不存在的值得到undef。

                        $family_name{'barney'} = 'rubble'        ##完成对某一哈希元素的单一赋值

访问整个哈希,    %family_name      ##此时哈希被转换成列表,列表中的元素为键--值对。

                        %family_name = ('foo', 35, 'bar', 12.4);

                        my %new_hash = %old_hash     ##整个hash的赋值,会先将hash分解为键值对,

                                                                             后在将键值对合并为hash。所以前后顺序可能改变。

还可以将hash写为如下的方式来进行赋值   my %last_name = (

                                                                            'fred'  =>  'flintstone',

                                                                            'dino'  =>  undef

                                                                                   );

=>称为胖箭头,来显式的指出其中的键值对,其中键的''可以省略。  $score{'fred'}也可以直接简写为$score{fred}。

 

哈希中的函数。

keys和values分别返回hash中的键列表和值列表。my @k = keys %hash;      my @v=values %hash;

                   在标量上下文中,分别返回键元素和值元素的个数。

                    if(%hash)     {print "....";}         ##在标量上下文,只要hash中有至少一个键值对,就返回真。

each函数,从哈希中返回一组键值。

                    while ( ($key, $value) = each %hash ) {print "....";}   ##在while中时标量上下文,返回2或0.

exists函数,检查哈希中是否存在某个键。

                    if (exists $book{"dino"})  {print "....";}

delete函数,删除哈希中的某个键值,不是赋值undef,而是直接删除。

                    delete $books{$person};

不可以在双引号内,直接内插整个hash。

                    foreach $persons (sort keys %books)

                               if( $books($persons) )  {print "$person has $books{persons}";}         ##只可以这样完成单个哈希的内插


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
perl查看某个模块的安装路径发布时间:2022-07-22
下一篇:
sendEmail报错:at/usr/share/perl5/vendor_perl/IO/Socket/SSL.pm发布时间:2022-07-22
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap