- 1、本文档共4页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
perlhash
本文和大家重点讨论一下Perl Hash的用法,哈希是一种数据结构,和数组类似,但是,和数组不同的是,其索引不是数字,而是名字。也就是说,索引 这里,我们将它叫key 不是数字而是任意的唯一的字符串。
一、什么是Perl Hash
哈希是一种数据结构,和数组类似,可以将值存放到其中,或者从中取回值。但是,和数组不同的是,其索引不是数字,而是名字。也就是说,索引 这里,我们将它叫key 不是数字而是任意的唯一的字符串。
key可以是任意的字符串,你可以使用任何的字符串作为key,但它们是唯一的。另一种思考hash 的方法是,把它看作一堆数据 a barrel of data ,每一个数据都有一个相应的标签。可以通过标签访问此标签对应的元素。但其中是没有“第一个”元素的概念的。在数组中,数组元素从0,Perl学习之哈希hash_马亮的计算机技术1,2 开始编号。但在hash中,没有确定的顺序,因此也没有第一个元素。只是一些key/value 对的集合。
keys和values均为任意的标量,但keys通常转换为字符串。因此,如果将表达式50/20 作为keys,则其通常被转换为3字符的字符串“2.5”。由于Perl的“没有不必要的限制”的设计哲学:hash可以是任意大小,从空hash 没有key/value对 ,到任何你内存允许的大小。keys是唯一的,但values可以重复。hash的value可以是数字,字符串,undef,或者它们的混合,但key是唯一的。
为什么使用Perl Hash
可以把hash看作一个简单的数据库,其中每一个key下面可以有一块数据。如果你的任务是关于:“查询重复的”,“唯一的”,“交叉引用的”,“查询表”,则hash很可能在这类应用中帮上Perl学习之哈希hash_马亮的计算机技术你的忙。
二、Perl Hash元素的存取
要访问hash 元素,可以使用下面的语法:$hash $some_key 这和访问数组元素的方法有些类似,这里下标 key 上使用的是花括号 ,而不是方括号([ ])。现在key 的表达式是字符串,而非数字。hash的名字和Perl中其它的标识符的命名规则是一样的 字母,数字,下划线组成,但不能由数字开头 。访问不存在的hash元素将得到undef。
1.作为整体的Perl Hash
要引用整个hash,使用百分号 % 作为前缀。为了方便,hash可以转换为列表,或者反过来。
2.Perl Hash赋值
可以使用如下的语法在hash 之间拷贝:%new_hash %old_hash;将hash转变成其它形式更加常见。例如,我们可以将hash反转:%inverse_hash reverse %any_hash;
3.大箭头符号 当给hash赋值时,有时并不明显哪些元素是keys,那些是values,因此发明了大箭头符号 。在需要逗号的时候,都可以使用大箭头符号替换。如:?
my?%last_name www? ?1, ?
eee? ?2, ;?
三、Perl Hash函数
某些有用的函数可以对整个hash 进行操作。
1.keys和values函数
keys函数会返回此hash的所有keys,values函数将返回所有的values。如果hash中没有元素,则此函数将返回空列表。?
my?%hash? ? a 1,?b 2,?c 3 ; ?
print?my?@k? ?keys?%hash; ?
print?my?@v? ?values?%hash;?
2.each函数
如果想迭代hash的每一个元素,一种通常的方法是使用each函数,它将返回key/value对应的2个元素列表。当对同一个hash 函数进行一次迭代时,将返回下一个key/value对,直到所有的元素均被访问。如果没有更多的key/value对,则each函数将返回空表。?
my?%hash? ? a 1,?b 2,?c 3 ; ?
while $key,?$value ? ?each?%hash print?$key? ?$value\n; 当然,each返回的key/vlaue对,顺序是混乱的 它其顺序和keys和values函数返回的顺序相同 。如果想将其按序排放,可以对它们排序(使用sort)。?
my?%hash? ? a 1,?b 2,?c 3,?d 4 ; ?
foreach?$key? sort?keys?%hash $value? $hash $key ; ?
print?$key? ?$value\n; 四、Perl Hash的通常用法
1.exists函数
要查看hash中是否存在某个key,可以使用exists
您可能关注的文档
- 数控深孔钻技术解决方案.doc
- 数控编程理论6.doc
- NBKBKS区别.doc
- NBA2k11键盘操作.doc
- nat444配置脚本.doc
- Nature杂志简介.doc
- 数电期末考试题.docx
- NBA球队名称简介.doc
- NBA底层球员的活法.doc
- NB人士总结的电影.doc
- 2025年江苏旅游职业学院单招英语2014-2024历年真题考点试卷摘选含答案解析.docx
- 2025合伙经营合同8篇.docx
- 2025年江苏护理职业学院单招(数学)历年真题考点含答案解析.docx
- 2025年最新版教育实习合同7篇.docx
- 2025年江苏城市职业学院单招语文2019-2024历年真题考点试卷含答案解析.docx
- 7号楼土石方工程合同5篇.docx
- 化工仪购销合同标准电子版10篇.docx
- 2025年江苏旅游职业学院单招职业技能测试近5年真题考点含答案解析.docx
- 2025年江苏海事职业技术学院单招职业技能测试近5年真题考点含答案解析.docx
- 2025年江苏海事职业技术学院单招语文2019-2024历年真题考点试卷含答案解析.docx
文档评论(0)