一: 哈希概念
是一种数据结构,可容纳很多值,并能随机存取;由关键字与索引值构成<key,value>;
key值是唯一的
二: 应用场景:
根据主机名找对应的IP地址,
根据IP地址找主机名,
按单词统计出现的次数,
按驾照号码找出对应的姓名
....................
三: 哈希的声明与赋值
1: 声明%
eg:my %tab;
2: 赋值
A:使用列表对哈希进行赋值,但必须有偶数个成员(键/值对)。例如
B:可用箭头符号=>将哈希赋值中的键/值区分开来
3: hash可转换成列表
eg:my @arrays = %tab;
4: hash复制
eg:my %new_hash=%hash;
my %inverse_hash=reverse %hash(哈希值value唯一的情况才有效)
5: 访问哈希元素
A:访问hash中的单个元素,使用花括号
eg:my $value = $scores{$key};
my $value2 = $scores {"xiaoming"};
B:可以将单个的哈希元素内插到双引号字符串中
eg:print “xiaoli‘s score is $scores{"xiaoli"}\n”;
C:%ENV 获取系统环境的配置信息(path)
eg:
6: 例子
输出:
use Data::Dumper;
print Data::Dumper->Dumper([\%scores1],[‘scores1‘]); #调用类Data::Dumper
三: 哈希操作
1: keys
返回关键字列表;my @name = keys %scores;
2: values
返回值列表;my @scores = values%scores;
3: each
返回一对值;my($name,$score) = each %scores
4: exists
检查hash中是否存在指定的关键字,存在返回1;my $person = "xiaoming"; exists $scores{$person};
5: delete
删除hash中指定的键与对应的值;delete $scores{$person};
6: 例子
输出: