网站大量收购独家精品文档,联系QQ:2885784924

perlhash.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 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

文档评论(0)

peain + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档