BBS.ChinaUnix.net
首页 | 新闻 | Linux | FreeBSD | AIX | Windows | 博客 | 论坛 | 存储 | 网络 | 人才 | Wiki | 资料 | 读书 | 手册 | 下载 | 空间 | 搜索
  会员: 密码: 免费注册 | 忘记密码 | 会员登录 | 搜索 | 帮助 


关于perl中的tie函数

首页 » 论坛 » Perl »  
[打印] [订阅] [收藏] [本帖文本页] [推荐此主题给朋友,立即获积分]
risepp   帅哥
精灵王




UID:299421
注册:2005-8-5
最后登录: 2008-07-26
帖子:291
精华:0

可用积分:308 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


1楼 发表于 2008-5-23 15:08 
我对这个函数的用法不是很理解,我现在的初步认识是
这个函数的作用就是
1)将某个变量与某个class关联
In modern versions of Perl, you can bind any ordinary variable (scalar, array, or hash) to an
implementation class by using tie. (The class may or may not implement a DBM file.) You can break this
association with untie.

通过关联之后使用该变量则是通过方法调用实现的,但是在这样做有什么好处呢?

2)把某个变量的值或者文件的内容通过tie保存在一个格式文件中,以便达到共享信息的效果,类似一个数据库。
tie %userdb, "DB_File",$userdb,O_RDONLY,666,$DB_BTREE
or die "Unable to open $userdb database for reading!\n";

unless (exists $userdb{$user}){
print "No logins from that user.\n";
untie %userdb;
untie %connectdb;
exit;
}

We've loaded the modules we need, taken our input, set a few variables, and tied them to our database files

但是我不理解的是这个代码是什么意思? 他把%userdb的值保存在$userdb文件中么?



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
risepp   帅哥
精灵王




UID:299421
注册:2005-8-5
最后登录: 2008-07-26
帖子:291
精华:0

可用积分:308 (白手起家)
信誉积分:100
专家积分:0 (本版:0)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


2楼 发表于 2008-5-23 15:15 
第二个问题是我自己多想了 呵呵  就是实现一个信息共享。
第一个问题还在思考中~~~~~~不明白~~~~



您对本贴的看法:鲜花[0] 臭蛋[0]
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
churchmice
风云使者
数字小白



UID:664989
注册:2008-1-23
最后登录: 2008-10-06
帖子:607
精华:0

可用积分:1273 (家境小康)
信誉积分:0
专家积分:7 (本版:7)
空间积分:0
推广积分:0

状态:...离线...

[个人空间] [短信] [博客]


3楼 发表于 2008-5-23 22:18 
回复 #1 risepp 的帖子



QUOTE:
The class may or may not implement a DBM file

这个东西最早应该是从DBM来的,你在做database的操作时候,虽然看起来像是在进行hash操作,但是实际上是在进行一些更加底层的操作(数据库访问),这样做的好处就是你不必关系底层的细节。
你也可以自己写个tie将一个hash和文件关联,这样封装以后,你就不需要考虑文件的打开关闭等问题,你对hash的任意操作均通过tie转化为底层的文件读写操作



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

其实我只是一架人肉搜索引擎
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?
版主 flw   帅哥
广告杀手-老法王
侠客



UID:14893
注册:2002-8-12
最后登录: 2008-10-07
帖子:20280
精华:13

可用积分:15711 (大富大贵)
信誉积分:925
专家积分:1239 (本版:61)
空间积分:0
推广积分:11

状态:...离线...

[个人空间] [短信] [博客]


4楼 发表于 2008-5-23 22:32 
如果不了解它的好处,就先不要用它。



您对本贴的看法:鲜花[0] 臭蛋[0]

__________________________________

data Maybe a = Nothing
             | Just a

---
如何知道一个变量是什么类型?
如何知道分配的内存有多大?
如何知道 select 的 fd_set 里哪个句柄是无效的?
如何知道指针是不是有效的?
如何通过文件句柄得到文件名?
……
如何知道我昨晚把袜子脱哪儿了?
积分兑换专区 | IT节能和TPC-E活动获奖名单 | 致电800-858-2903,了解DELL如何为你量身订制笔记本 | 送2G U盘 | 站长如何获得资金?

首页 » 论坛 » Perl »


 


Copyright © 2001-2008 ChinaUnix.net All Rights Reserved     联系我们:

感谢所有关心和支持过ChinaUnix的朋友们    转载本站内容请注明原作者名及出处

京ICP证041476号


清除 Cookies - ChinaUnix - Archiver - WAP - TOP

Processed in 0.117724 second(s), 4 queries , Gzip enabled