关于perl中的tie函数

关于perl中的tie函数

我对这个函数的用法不是很理解,我现在的初步认识是
这个函数的作用就是
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文件中么?
第二个问题是我自己多想了 呵呵  就是实现一个信息共享。
第一个问题还在思考中~~~~~~不明白~~~~


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

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