首页 > 代码库 > Perl语言学习笔记 6 哈希
Perl语言学习笔记 6 哈希
1、哈希的键是唯一的,值可以重复!
2、访问哈希元素
$hashname{“$key”};#哈希为大括号,数组为方括号,键为字符串
$family_name{"fred"} = "firstd";#给哈希元素赋值
3、哈希键支持任意表达式
$foo = "na";
$family_name{$foo."me"};#获取$family_name{“name"}对应的值
4、访问整个哈希
%family_name
5、哈希和列表可以互相转换
%some_hash = {"peison1",35,"person2",43,"person3",56};列表转换为哈希
@arry = %some_hash;哈希转换为列表
6、哈希会对键值对进行重新排序,输出和输入的顺序可能不一样
7、哈希复制与反转
%new_hash = %old_hash;先将old_hash转换为列表,再将列表转换为new_hash
%in_hash = reverse %old_hash;键值互换,一般在哈希值唯一的时候方可进行,否则相同键的后来的值会覆盖原来的
8、胖箭头
作为逗号的另一种写法,便于区别键值对
%my_hash = (
"fred" => "fsas",
"fdsred"=>"fsdsas",
"frsdesdd"=>"fdssas",
)
末尾的逗号不可省略,两边用小括号
9、获取键值
@key = keys %hash;#返回键列表
@value = http://www.mamicode.com/values %hash;#返回值列表,与key顺序一致
$num = keys %hash;#返回键值对的个数
10、罗列哈希的键值对
while(($key,$value) = each %hash){print "$key => $value\n";}#each的返回结果为列表,while内布尔求值的结果为列表的元素数(2)
11、常用哈希函数
exists $hash{"dsa"};#判断是否存在dsa键
delete $hash{"dsa"};#删除指定的键及对应的值,不管是否存在该键,都不会报错,与将该键赋值为undef不同
12、可以将单个哈希值内插到双引号字符串中,"hash value is $hash{$person}";不支持整个哈希的内插
13、获取环境变量的配置等信息
通过存取%ENV实现,如:print "PATH is $ENV{PATH}";可以获得PATH的值
获取程序外设置的环境变量:$ENV{CHARACTER}