blue1025的个人空间 https://blog.eetop.cn/mj8051 [收藏] [复制] [分享] [RSS]

空间首页 动态 记录 日志 相册 主题 分享 留言板 个人资料

日志

PERL 第6章 Hashes

已有 986 次阅读| 2008-9-27 14:00 |个人分类:PERL

SOURCE HTML: http://socvista.com/bbs/redirect.php?fid=71&tid=913&goto=nextnewset

09:06
-- hash概况
hash听到很多,但是一直没有研究。我就现学现卖了。
其实hash可以看作是一个array,只不过他不是用数字来index的,而是用字符串来index,这个字符串可以叫做key,而对应的取值叫做value。(key-value这个搭配倒是经常看到。所以一说就明白了是吧)。

-- 为什么需要hash
主要的应用场合有:域名-IP地址(查询表),单词-出现频率(查询表),姓名-驾驶证号码(查询表)等等。利用一个字符串key我们可以查询相对不容易记忆的value。

-- 访问hash元素
语法:$hash{ $some_key };
$family_name{"fred"} = "flintstone";

-- 整个hash的表示
%hash_name

-- 将hash转换成list
@array_name = %hash_name;

-- hash赋值
%hash_name = ("key1", value1, "key2", value2, ...);

-- hash key-value倒置
%inversi_hash = reverse %hash_name;
倒置后,原来的key-value 变成 value-key。也就是用原来的value作为key,而原来的key成为了value。

-- 胖逗号
在perl语法里=>符号和,是等价的,因此叫做胖逗号。在hash赋值的时候特别有用。比如
my %last_name = (
  "kobe" => "fan",
  "li" => "qiu",
  "larry" => undef,
);

-- hash函数
my %hash = ("a"=>1, "b"=>2, "c"=>3);
my @k = keys %hash; # 返回key串
my @v = values %hash; # 返回value串
if (%hash_name) {}; # 如果hash包含一个以上k-v组合则布尔值为true。
while (($key, $value) = each %hash) { print "$key => $value\n";} # each函数将hash的k-v组合逐个读出
foreach $key (sort keys $hash) {} # sort函数将keys进行排序
if (exists $book{"dino"}) {print "dino key exists\n"}; # exists 函数判断某个key是否存在
delete $books{$person}; # 删除$person这个key

点赞

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 注册

  • 关注TA
  • 加好友
  • 联系TA
  • 0

    周排名
  • 0

    月排名
  • 0

    总排名
  • 0

    关注
  • 13

    粉丝
  • 14

    好友
  • 15

    获赞
  • 23

    评论
  • 2819

    访问数
关闭

站长推荐 上一条 /1 下一条

小黑屋| 关于我们| 联系我们| 在线咨询| 隐私声明| EETOP 创芯网
( 京ICP备:10050787号 京公网安备:11010502037710 )

GMT+8, 2024-3-29 01:42 , Processed in 0.012886 second(s), 7 queries , Gzip On, Redis On.

eetop公众号 创芯大讲堂 创芯人才网
返回顶部