$hash{$some_key} = "value";
eg. $hash{name} = Raymond;
$hash{age} = 29;
$hash{city} = Hamilton;
%hash = (); #"%" 百分号就是hash的意思
$hash{name} = Raymond;
$hash{age} = 29;
$hash{city} = Hamilton;
print "@{[%hash]}\n";
结果是: city Hamilton name Raymond age 29
单个hash值
print "$hash{city}\n";
如果key有多余一个words 就要用'', $hash{'my name'} = "Raymond nz";
另一种创建hash方法
%hash = (
'name', 'Raymond',
'age', '29',
'city', 'Hamilton'
);
%hash = qw(
name john
age 28
city Hamilton
);
looping hash
%hash = qw(
food sandwich
desert donut
drink coke
);
while(($key, $value) = each(%hash)){
print "$key --- $value\n";
}
foreach $key (keys %hash){
pring "$key\n";
$value = $hash{$key};
print "$key => $value\n";
}
if(exists($hash{animal})){
print "Key does exist!\n";
}else{
print "key doesn't exist!\n";
}
结果:key不存在
defined 和 exists的区别
defined检查有没有值value, exists检查又没key
Reverse, sort, merge
reverse: 把key变成value,把value变成key
%hash = qw(
food sandwich
desert donut
drink coke
);
%reversed = reverse %hash;
foreach $key (keys %reversed){
print "$key - $reversed{$key};
}
sort:
foreach $key(sort key %hash){
print "key\n";
}
merge:
%hash2 = qw(
drink coffee
sugar 1
milk yes
);
%hash3 = (%hash, %hash2);
print "$hash3{drink}\n"; 结果是coffee;
No comments:
Post a Comment