4

Tie::CPAN 上有很多具有命名空间的模块- Tie::HashTie::SubTie::CacheTie::DBI等。它们之间有什么共同点?

我检查了perltie,但不确定我是否清楚地理解了这个概念。有人可以解释一下吗?

4

2 回答 2

9

Tie:: 命名空间中的模块分为两类:

  • 那些实现可以绑定变量的类的那些(例如Tie::DBI),以及
  • 帮助用户构建此类的那些(例如Tie::Hash)。

tie允许一个对象接受一个变量的接口。当您从一个绑定变量中读取数据时,您实际上是在调用一个方法来检索信息。当您写入绑定变量时,您实际上是在使用该信息调用一个方法。

例如,让我们看一下与 Tie::DBI 相关的哈希。

  • 当您列出散列的键时,会调用一个方法来获取数据库表的每一行的主键。
  • 当您获取散列元素的值时,会调用一个方法来获取数据库表的指定行。
  • 当您创建/设置散列元素的值时,会调用一个方法来创建/设置数据库表的指定行的字段。
于 2019-02-13T09:40:40.070 回答
3

它只涉及绑定哈希,但我2001 年在 perl.com 上的文章可能会回答一些问题。

于 2019-02-14T16:58:54.310 回答