内容

名称

Tie::RefHash - 使用引用作为哈希键

版本

版本 1.40

概要

require 5.004;
use Tie::RefHash;
tie HASHVARIABLE, 'Tie::RefHash', LIST;
tie HASHVARIABLE, 'Tie::RefHash::Nestable', LIST;

untie HASHVARIABLE;

描述

此模块允许您在将哈希变量绑定到此模块后使用引用作为哈希键。通常,只有绑定哈希本身的键被保留为引用;要使用引用作为哈希中的键,请使用 Tie::RefHash::Nestable,它包含在 Tie::RefHash 中。

它是使用标准的 perl TIEHASH 接口实现的。有关更多信息,请参阅 perlfunc(1) 和 perltie(1) 中的 tie 条目。

Nestable 版本的工作原理是查找存储的哈希引用,并将它们转换为绑定哈希,以便它们也可以使用引用作为键。只要您在绑定哈希中存储对您自己的哈希的引用,就会发生这种情况,并且不会发出警告。

示例

use Tie::RefHash;
tie %h, 'Tie::RefHash';
$a = [];
$b = {};
$c = \*main;
$d = \"gunk";
$e = sub { 'foo' };
%h = ($a => 1, $b => 2, $c => 3, $d => 4, $e => 5);
$a->[0] = 'foo';
$b->{foo} = 'bar';
for (keys %h) {
   print ref($_), "\n";
}

tie %h, 'Tie::RefHash::Nestable';
$h{$a}->{$b} = 1;
for (keys %h, keys %{$h{$a}}) {
   print ref($_), "\n";
}

线程支持

Tie::RefHash 使用 CLONE 方法完全支持线程。

可存储支持

为语义上正确的序列化和克隆绑定引用哈希提供了 Storable 钩子。

参见

perl(1), perlfunc(1), perltie(1)

支持

可以通过 RT 错误跟踪器(或 [email protected])提交错误。

作者

Gurusamy Sarathy <[email protected]>

Tie::RefHash::Nestable 由 Ed Avis <[email protected]> 编写。

贡献者

版权和许可

此软件版权所有 (c) 2006 由 יובל קוג'מן (Yuval Kogman) <[email protected]>。

这是一个自由软件;您可以在 Perl 5 编程语言系统本身的相同条款下重新发布和/或修改它。