perl语言入门(5)
第六章 哈希
1.哈希
哈希就是一种数据结构,可以容纳很多值,并随机存取.是很多的键值对,键是字符串且唯一,但是键可以对应多个值(值可以重复).键和值都是任意的标量.
1.哈希
哈希就是一种数据结构,可以容纳很多值,并随机存取.是很多的键值对,键是字符串且唯一,但是键可以对应多个值(值可以重复).键和值都是任意的标量.
值可以是数字,字符串,undef.
2.访问hash元素
2.访问hash元素
- $family_name{"fred"}
- %family_name
3种赋值方法:
%family_name = ("foo",35,"bar",12.4); %family_name = qw/foo 35 bar 12.4/; %family_name = 用胖箭头; |
# 数字和字符串会根据需要自动转换
-
%new_hash = %old_hash;
反转hash,如果多个值,则后面的键覆盖前面的
%new_hash = reverse %old_hash;
哈希松绑(列表上下文)
@any_array = %family_name;
说明松绑后输出不一定是当初赋值的顺序.但是键对应值是固定的
%new_hash = reverse %old_hash;
哈希松绑(列表上下文)
@any_array = %family_name;
说明松绑后输出不一定是当初赋值的顺序.但是键对应值是固定的
- hash赋值直观的写法
- my %family_name = (
- "foo" => 35,
- "bar" => 12.4,
- );
4.哈希函数
返回键列表
keys %hash
返回值列表
values %hash
返回键的个数
my $counts = keys %hash;
print scalar(keys %hash);
返回值得个数
my $counts = values %hash;
布尔判断
if(%hash)
# 只要hash不为空就返回真
5.each函数
每次返回一组键值对
返回键列表
keys %hash
返回值列表
values %hash
返回键的个数
my $counts = keys %hash;
print scalar(keys %hash);
返回值得个数
my $counts = values %hash;
布尔判断
if(%hash)
# 只要hash不为空就返回真
5.each函数
每次返回一组键值对
- while (($key,$value)= each %hash) {
- print "$key => $value\n";
- }
# 到返回空列表时循环结束
# 不知道键对应多个值时会什么样
检查某个键是否存在
# 不知道键对应多个值时会什么样
检查某个键是否存在
- if (exists $hash{"diao"})
# 返回真则键diao存在
删除指定的键和它的值
删除指定的键和它的值
- delete $hash{"diao"}
# 假如键不存在,它直接结束,不会给出任何提示信息。
转载于:https://blog.51cto.com/linuxgp/908632