perl数组和哈引用.pdfVIP

  1. 1、本文档共9页,可阅读全部内容。
  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文档。上传文档
查看更多
谁需要复杂的数据结构 ? 始终伴随着 Perl 4 的一个问题是怎么样来描述一个值是列表的哈希表。 Perl 4 有哈希但是它 的值必须是标量,不能是列表。 你为什么需要一个列表的哈希结构呢?让我们来看一个简单的例子: 你有一个包含城市和国 家名称的文件,如下: Chicago, USA Frankfurt, Germany Berlin, Germany Washington, USA Helsinki, Finland New York, USA 你想按照下面的格式输出, 每一个国家出现一次, 然后是一个按照字母顺序的该国家内城市 的列表,如下: Finland: Helsinki. Germany: Berlin, Frankfurt. USA: Chicago, New York, Washington. 一个很自然的解决方法是将国家的名称设置为一个哈希结构的键, 和国家名称对应的健值是 这些国家内的城市的一个数组。 每一次, 你读取一行输入, 将其分成国家和城市两个数据。 查看 国家名称 的键所对应的城市列表,然后把新的城市加入那个列表中。当你完成了整个 输入,然后将整个哈希中每个健对应的健值-城市名的列表作一个排序,然后打印出来。 如果哈希值不能是列表,你就无法完成工作了。在 Perl 4 中,哈希的值不能是列表。它们 只能是字符串。 所以你必须把所有的城市名合并成一个字符串。 当需要输出时, 你再把这个 字符串分拆成一个列表, 然后对列表排序, 最后将列表中的数据转成字符串输出。 这样做非 常烦琐并容易出错。而且让人沮丧的是, Perl 已经拥有的优秀的列表功能无法使用了。 解决方法 当 Perl 进化到 Perl 5 时,我们必须考虑到哈希原来的设计 :哈希的键值必须是标量。解决办 法就是采用 引用 。 一个 引用 就是一个指向一个完整列表或完整哈希 (或指向其他的东西,比如函数 ) 的标量值。 名字就是你比较熟悉的一种 引用 。 考虑一下美国的总统:一包杂乱的血肉。但是当我们谈 到它,或者需要在计算机程序中描述它,你需要的只是一个简单的标量 George Bush 。 Perl 中的引用 就像列表和哈希的名字。它们是 Perl 中私有的,内部的名字,所以你可以确 信它们是明确的,不像 George Bush, 一个 引用 只指向一个东西。你总是可以知道它指向 什么。如果你有一个指向数组的 引用 ,你可以从它恢复出整个数组。如果你有一个指向哈 希的 引用 ,你可以根据它恢复出整个哈希。 但是这个 引用 仍旧是一个简单、 紧凑的标量。 你不能使用一个健值是数组的哈希; 哈希的健值必须是标量。 我们被这个束缚住了。 但是一 个简单的 引用 能指向一个完整的数组, 引用 是标量,所以你可以使用指向数组的 引用 组 成的哈希,它就像一个数组的哈希一样,和数据的哈希一样有用。 稍后我们会再回到这个 城市-国家‘ ’的问题来。我们先来看一些操作 引用 的语法。 语法 创建 引用 仅有两种方法,使用它也是两种。 创建引用 创建规则 1 如果你在一个变量前加一个 /号,你就得到了这个变量的 引用 。 $aref = /@array; # $aref 保存着指向 @array 的 引用 $href = /%hash; # $href 保存着指向 %hash 的 引用 当你把 引用 保存在类似

文档评论(0)

小人物 + 关注
实名认证
文档贡献者

小人物学习

1亿VIP精品文档

相关文档