例如:
#!/usr/bin/env perluse strict;use warnings;use 5.13.7;my $hashref = { english => 'hello',spanish => 'hola',french => 'bon jour'};foreach my $greeting (keys $hashref) { say $hashref->{$greeting}; #use say since we need a later version anyway}
而不是使用命名散列(%hash)的更传统方式.
附:如果看到这是增强的,我可以改为CW,但我很想听到一些观点.
解决方法 在引用上使用某些数组和散列函数的能力只是语法糖,不需要影响你使用第一级复数结构的方式.有几个原因:鉴于我的$array = [1 … 10]
>列表处理函数,如map,grep,sort,reverse,print,say,printf等等,仍然需要传递正确的列表,所以这意味着使用@ $array与更简单的@array这些函数.
> for / foreach循环需要传递一个列表,需要@ $数组
> $array始终为true,以确定编写@ $array所需的长度
while ($array) { infinite loop }while (@$array) { what you probably wanted }while (@array) { no room for error here }
>将一个真正的@array子脚本化为$array [$IDx]比$array-> [$IDx]稍微快一些(~15%),因为每次访问都不需要取消引用.由于散列函数的开销,与散列的差异较小,约为3%.
基本上,通过转移到所有引用,您将获得需要使用解除引用标记的不同功能集.相反,利用pre v5.13.7功能来宣告即时使用我的@array;我的%哈希;并在您将使用过多的@ {…}或%{…}结构与适用函数的区域中使用新的语法快捷方式.
总结以上是内存溢出为你收集整理的perl – 更常用的数据结构引用全部内容,希望文章能够帮你解决perl – 更常用的数据结构引用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)