温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

如何利用Perl哈希表建立键

发布时间:2021-12-07 09:15:12 来源:亿速云 阅读:189 作者:小新 栏目:开发技术

小编给大家分享一下如何利用Perl哈希表建立键,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

Perl基础:利用Perl哈希表建立键-值数据映射

Perl的数据结构中最有趣的一个特性是Perl哈希表(hash),它使得在数据片段之间建立键—值(key-value)关联成为可能。虽然这些Perl哈希表要远远比普通系统中以数字索引的数组用途更广,但是往往也会使初学者不知所措。这就是要写本篇文章的原因所在——它将告诉你如何创建Perl哈希表,如何插入、删除要素,以及如何创建嵌套PerlPerl哈希表和利用循环来处理Perl哈希表。

定义Perl哈希表

首先,什么是Perl哈希表?从本质上来说,它是以字符串索引的数组。也就是说,你要使用字符串标签而不用数字来存取各个元素。下面是一个例子:

列表A

#!/usr/bin/Perl   #definehash  %alphabet=('a'=>'apple',  'b'=>'ball',  'c'=>'cat',  'x'=>'xylophone');

上面的几行用四对键—值关联建立了一组PerlPerl哈希表。可以注意到,变量名前面的符号%表示它是一个Perl哈希表,箭头用来指出键—值关系。

你也可以这样写代码:

列表B

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');

在定义了一个Perl哈希表以后,你就可以用定义后的名称对独立的要素进行存取。例如,看下面的代码:

列表C

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');   #accesshashvalue  print"Aisfor".$alphabet;

输出结果为:

Aisforapple.

要清除Perl哈希表,只需简单地把它赋值于一个空的数据集,就像下面的例子:

列表D

#!/usr/bin/Perl   #(re)initializehash  %alphabet=();

插入、改变和删除Perl哈希表元素

你可以在一个Perl哈希表中插入一个新元素(或者更改一个现有的Perl哈希表),只需要给与之相对应的键设置一个新的数值就行了。如果这个键不存在,它将会被创建。下面是一个例子:

列表E

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');   #addnewelement  $alphabet='dog';   #changeexistingelement  $alphabet='arrow';   #accesshashvalue  print"Aisfor".$alphabet;

你可以用delete()函数删除一对键—值对,就像下面这样:

列表F

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');   #deleteelement  delete$alphabet;

检索键和数值

如果你觉得一个Perl哈希表的键和数值有用,需要进一步处理,Perl允许将其提取到单独的数据结构中。你可以用函数keys()将一个Perl哈希表的键返回成为一个数字索引的数组。下面是一个例子:

列表G

#!/bin/Perl   #definehash  %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');   #getandprinthashkeys  @keyskeys=keys(%alphabet);  print"@keys";

或者,你可以用函数values()获得一个具有Perl哈希表值的数组,如下:

列表H

#!/bin/Perl   #definehash  %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');   #getandprinthashvalues  @vals=values(%alphabet);  print"@v";

计算Perl哈希表的大小

计算Perl哈希表大小的最简单方法就是用上述的keys()函数,将Perl哈希表中的键提取到一个数组中,然后检索得到数组的大小,操作方法如下:

列表I

#!/bin/Perl   #definehash  %alphabet=('a'=>'apple','b'=>'bat','c'=>'cat');   #printnumberofhashelements  print"Thehashhas".scalar(keys(%alphabet))."elements";

 处理Perl哈希表元素

运用while()循环处理一个Perl哈希表中的所有元素也比较容易。下面是一个简单的例子:

列表J

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');   #loopoverhash  while(($key,$value)=each(%alphabet)){  print"$keyisfor$value";  }

或者,用前面已经讨论过的for()循环和keys()函数:

列表K

#!/usr/bin/Perl   #definehash  %alphabet=('a','apple','b','ball','c','cat','x','xylophone');   #loopoverhash  for$k(keys(%alphabet)){  print$k."isfor".$hash."";  }

运用嵌套的Perl哈希表

Perl也允许在一个Perl哈希表(或数组)中再嵌入一个Perl哈希表(或数组)。这样就为构建长而复杂的数据结构提供了很大的灵活性,下面是一个例子:

列表L

#!/usr/bin/Perl   %movies=(  'black'=>{'hero'=>'Batman','villain'=>'ThePenguin'},  'red'=>[{'hero'=>'Spiderman','villain'=>'GreenGoblin'},  {'hero'=>'Superman','villain'=>'LexLuthor'}]  );   #retrieveandprintvalues  print$movies."fights".$movies."";   print$movies[1]."fights".$movies[1]."";

该代码返回的结果是:

BatmanfightsThePenguin
SupermanfightsLexLuthor

以上是“如何利用Perl哈希表建立键”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI