首页 > 代码库 > 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}