2005-12-11

perl中匿名散列表与引用

来源: 本站收集整理 作者:佚名 评论 0 条
 
sex => 'man',
age => '25',
title => 'perl fans',
});


可能见过这样的代码吧,呵呵,这里传递给函数的,就是一个 匿名散列的引用。

上面的代码,也就是相当于下面的代码



my $personal_ref =
{
id => '452226197705300020',
name => 'tsingson',
sex => 'man',
age => '25',
title => 'perl fans',
};

$usertable->add($personal_ref);




my %personal =
(
id => '452226197705300020',
name => 'tsingson',
sex => 'man',
age => '25',
title => 'perl fans',
);

my $personal_ref = \%personal;

$usertable->add($personal_ref);


#######################################################
这里就有一个技巧在,就是使用引用来传递散列表给函数

我们看看这们函数内是如何使用的



package Personal;
use strict;

sub add {
my $self = shift;
my $personal_ref = shift;

if (ref $personal_ref eq 'HASH')
{
my $name = $personal_ref->{'name'};
}

return;
}


kao, 为什么这样啊,看起来很烦嘛
这里,使用 散列引用,是为了代码更为清楚准确,因为散列表可以清楚知道变量是什么,对于将来维护与排错,增加功能或信息都很方便。

比如加一个国家属性,只要在 散列表里加




Code

my $personal_ref =
{
id => '452226197705300020',
name => 'tsingson',
sex => 'man',
age => '25',
title => 'perl fans',
state => 'china', ###### 看,加在这里了
};

$usertable->add($personal_ref); #### 这里还是没变


看看函数里修改的地方



package Personal;
use strict;

sub add {
my $self = shift;
my $personal_ref = shift;

if (ref $personal_ref eq 'HASH')
{
my $name = $personal_ref->{'name'};
if ( exists $personal_ref->{'state'} ) ############## 代码加在这里了
{
print $personal_ref->{'state'}; ############## 处理
}
}

return;
}



我想,通过上面的说明,应该了解散列引用与匿名散列了吧。
共2页: 上一页 [1] 2 下一页
(本文仅表明作者个人观点,不代表本站及其管理员立场.) 推荐 收藏 投稿 打印 返回 关闭
上一篇:板儿砖发起人砖头:Digg推动社会网络前行  
下一篇:PHP找回密码机制流程
    评论加载中…
 推荐文章
     

网站首页  -  网站地图 -   站长论坛  -  网站投稿  -    -  网站管理
Copyright © 2008 芜湖站长站 All Rights Reserved 皖ICP备07500611号