Perl中的哈希(四)
Perl中的哈希数据结构。相比较于数组,这种数据结构对于数据查找和统计更加方便。
一个特殊的哈希,%ENV,表示当前terminal下,通过setenv设置的variable的键值。
键:环境变量名,,,,值:环境变量值。
哈希是一种数据结构,由一对对的键(keys)--值(values)对来组成。
这些键和值都是任意的标量,但键总会被转换成字符串而且必须是唯一的字符串。
访问哈希元素, $hash{$some_key} ##和访问数组的做法类似,只是使用了花括号{}而非方括号[]。
访问哈希表中不存在的值得到undef。
$family_name{'barney'} = 'rubble' ##完成对某一哈希元素的单一赋值
访问整个哈希, %family_name ##此时哈希被转换成列表,列表中的元素为键--值对。
%family_name = ('foo', 35, 'bar', 12.4);
my %new_hash = %old_hash ##整个hash的赋值,会先将hash分解为键值对,
后在将键值对合并为hash。所以前后顺序可能改变。
还可以将hash写为如下的方式来进行赋值 my %last_name = (
'fred' => 'flintstone',
'dino' => undef
);
=>称为胖箭头,来显式的指出其中的键值对,其中键的''可以省略。 $score{'fred'}也可以直接简写为$score{fred}。
哈希中的函数。
keys和values分别返回hash中的键列表和值列表。my @k = keys %hash; my @v=values %hash;
在标量上下文中,分别返回键元素和值元素的个数。
if(%hash) {print "....";} ##在标量上下文,只要hash中有至少一个键值对,就返回真。
each函数,从哈希中返回一组键值。
while ( ($key, $value) = each %hash ) {print "....";} ##在while中时标量上下文,返回2或0.
exists函数,检查哈希中是否存在某个键。
if (exists $book{"dino"}) {print "....";}
delete函数,删除哈希中的某个键值,不是赋值undef,而是直接删除。
delete $books{$person};
不可以在双引号内,直接内插整个hash。
foreach $persons (sort keys %books)
if( $books($persons) ) {print "$person has $books{persons}";} ##只可以这样完成单个哈希的内插
Perl中的哈希(四)的更多相关文章
- perl 中的哈希赋值
在perl 中,通过代码动态的给哈希赋值,是最常见的应用场景,但是有些情况下,我们事先知道一些信息,当需要把这些信息存放进一个哈希的时候,直接给哈希赋值就好: 哈希的key不用说,就是一个字符串,关键 ...
- Perl中的数组&哈希应用
哈希和数组是Perl中较为常用的结构,本文则重点讨论数组和哈希的一些基本用法,供广大喜爱Perl的同学们交流学习. 哈希 Perl中的哈希表类似于Python中的字典结构,由(键=>值)对构成, ...
- perl中ENV的使用
在打印环境变量的时候可以用到.实际上是%ENV,perl中的哈希变量,里面保存的是环境变量.键是环境变量名,值是环境变量值.例如,有一个环境变量是PATH,其值为C:\windows,那么,打印这个环 ...
- [PHP内核探索]PHP中的哈希表
在PHP内核中,其中一个很重要的数据结构就是HashTable.我们常用的数组,在内核中就是用HashTable来实现.那么,PHP的HashTable是怎么实现的呢?最近在看HashTable的数据 ...
- Java集合类中的哈希总结
JAVA集合类中的哈希总结 目 录 1.哈希表 2.Hashtable.HashMap.ConcurrentHashMap.LinkedHashMap.TreeMap区别 3.Hashtable.Ha ...
- Perl中的替换(七)
在Perl中使用s///进行替换操作,与m//进行查找操作类似. s/with (\w+)/against $1's team/; ##第一个双斜线,表示被替代的文本.第二个双斜线,表示将替 ...
- perl中的grep函数介绍
grep函数 (如果你是个的新手,你可以先跳过下面的两段,直接到 Grep vs.loops 样例这一部分,放心,在后面你还会遇到它) <pre>grep BLOCK LISTgrep E ...
- Perl中的输入输出流(三)
Perl中读取标准输入:<STDIN> foreach (<STDIN>) { print "I saw $_";} 钻石操作符<>:它的参数 ...
- Perl 变量:哈希变量
Perl 哈希变量哈希是 key/value 对的集合.Perl中哈希变量以百分号 (%) 标记开始.访问哈希元素格式:${key}. 1.创建哈希创建哈希可以通过以下两种方式: 1.为每个 key ...
随机推荐
- 查看运行中的Java其配置的堆大小
一.背景 有题目中的需求,也不是空穴来风:前一阵给公司搭建了一个持续集成服务器,Jenkins.最近发现,运行一段时间后,就变慢了. 随便一个操作,cpu就飙高了.然后就思考会不会是内存不够用,频繁G ...
- 静态时序分析基础STA
静态时序分析SAT 1. 背景 静态时序分析的前提就是设计者先提出要求,然后时序分析工具才会根据特定的时序模型进行分析,给出正确是时序报告. 进行静态时序分析,主要目的就是为了提高系统工作主频 ...
- python pytest测试框架介绍四----pytest-html插件html带错误截图及失败重测机制
一.html报告错误截图 这次介绍pytest第三方插件pytest-html 这里不介绍怎么使用,因为怎么使用网上已经很多了,这里给个地址给大家参考,pytest-html生成html报告 今天在这 ...
- python 测试框架之---testtools
在tempest框架中,使用的是testtools为基础框架来运行接口自动化 一.初识 testools是属于python中诸多自动化框架中的一个,官方文档如下: http://testtools.r ...
- Linux shell一行流编程实践
Linux下很多命令用起来真相当方便,尤其是进行批处理操作时.(话说感觉这种程序也不复杂,windows咋一直不搞一个好用的shell呢) 这里列出一些实际shell操作的应用场景,具体命令的用法与解 ...
- mui+vue+photoclip做APP头像裁剪上传
做APP由于项目需要,需要做用户头像上传的功能,头像上传包括拍照和相册选择图片进行上传,这里使用的技术是mui封装的plus,在进行图片裁剪的时候,使用的是photoclip来进行裁剪,由于个人在使用 ...
- 2-sat入门(tarjan)hdu(3062)
hdu3062 Party Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) To ...
- 从Spring到SpringBoot构建WEB MVC核心配置详解
目录 理解Spring WEB MVC架构的演变 认识Spring WEB MVC 传统时代的Spring WEB MVC 新时代Spring WEB MVC SpringBoot简化WEB MVC开 ...
- 洛谷P2569 股票交易【dp】【单调队列】
题目描述 最近 \text{lxhgww}lxhgww 又迷上了投资股票,通过一段时间的观察和学习,他总结出了股票行情的一些规律. 通过一段时间的观察,\text{lxhgww}lxhgww 预测到了 ...
- CCCC L2 部落 L3社交集群
https://www.patest.cn/contests/gplt/L2-024 题解:部落是并查集模板题. 社交集群用并查集暴力有23分 坑:写了半天,发现自己并查集没怎么学明白,现在才搞懂: ...