从现在开始,每天一点点……
哈希的简单应用--hash
上一篇 /
下一篇 2011-07-06 10:19:23
/ 个人分类:perl基础
1.
访问哈希 1)访问哈希元素 $hash{$some_key}
$family_name{"fred"} = "rubble"; //哈希键可以是字符串
$family_name{"fred"} = "astaire";
$bedrock = $family_name{"fred"};//若对某个已存在的哈希元素赋值,
就会覆盖之前的值
$family_name{"wilma"} = "astaire";
$family_name{"betty"} .= $family_name{"wilma"};//哈希元素会因为赋值而诞生
访问哈希表里不存在的值就会返回undef;
2)访问整个哈希 %family_name; //指代整个哈希
在列表上下文中,哈希会自动变成一些简单的键值对,叫做哈希松绑。
@array = %family_name;
2.
哈希赋值
%new_hash = %old_hash; //用法不常见
%inverse_hash = reverse %any_hash; //常见的用法
my %last_name = (
"fred" => "flintstone",
"dino" => "undef",
"barney" => "rubble",
);
3.
哈希函数 keys函数:返回指定的 HASH 里的所有键字组成的一个列表。
keys %hash; values函数:返回一个包含指定散列 HASH 里的所有值的列表。
values %hash; #!/usr/bin/perl
use strict;
my %hash =(
"a" => 1,
"b" => 2,
"c" => 3,
);
my @k = keys %hash;
print "@k\n";
my @v = values %hash;
print "@v\n";
my $count = keys %hash;
print "$count\n";
输出结果:
c a b
3 1 2
3
each 函数以一次一个键/值对的方式遍历一个散列。在列表环境中,each 返
回 一个两个元素的列表,该列表包含散列中下一个元素的键字和数值。如果在
标量环境里调用,each 只是返回散列中下一个元素的键字。如果散列已经全部
读取完了,那么返回一个空列表,如果你给这个空列表赋值,那么在标量环境中
会生成一个假值
each %hash;
while(($key, $values) = each %ENV){
print "$key = $values\n";
}
delete函数:能从哈希中删除指定的键和对应的值;
my $person = "betty";
delete $books{$person};
exists函数:若要检查哈希中是否有某个键,可用此函数返回真或假值,分别表
示键存在与否,与对应的值无关。
print "hey,there is a library card for dino!\n" if exists
$book{"dino"};
print "Exists\n" if exists $hash{$key};
4.
作业题 读入用户指定的名字并汇报相应的姓。
收藏
举报
TAG: