内容

名称

Tie::Scalar、Tie::StdScalar - 绑定标量的基类定义

概要

package NewScalar;
require Tie::Scalar;

@ISA = qw(Tie::Scalar);

sub FETCH { ... }		# Provide a needed method
sub TIESCALAR { ... }	# Overrides inherited method


package NewStdScalar;
require Tie::Scalar;

@ISA = qw(Tie::StdScalar);

# All methods provided by default, so define
# only what needs be overridden
sub FETCH { ... }


package main;

tie $new_scalar, 'NewScalar';
tie $new_std_scalar, 'NewStdScalar';

描述

此模块为绑定标量类提供了一些骨架方法。有关绑定标量到包所需的函数列表,请参阅 perltie。基本 Tie::Scalar 包提供了一个 new 方法,以及 TIESCALARFETCHSTORE 方法。Tie::StdScalar 包提供 perltie 中指定的所有方法。它继承自 Tie::Scalar,并使绑定到它的标量行为与内置标量完全相同,允许对方法进行选择性重载。new 方法作为对忘记提供自己的 TIESCALAR 方法的类的遗留支持提供。

对于希望编写自己的绑定标量类的开发人员,方法总结如下。 perltie 部分不仅记录了这些方法,而且还提供了示例代码

TIESCALAR 类名, 列表

由命令 tie $scalar, 类名 调用的方法。将一个新的标量实例与指定的类关联。列表 代表完成关联所需的附加参数(类似于 AnyDBM_File 及其同类)。

FETCH this

检索由 this 引用的绑定标量的值。

STORE this, value

将数据 value 存储在由 this 引用的绑定标量中。

DESTROY this

释放与由 this 引用的绑定标量关联的存储空间。这很少需要,因为 Perl 很好地管理其内存。但是,如果一个类希望在实例销毁时执行特定操作,则可以选择此选项。

Tie::Scalar vs Tie::StdScalar

Tie::Scalar 提供所有必要的方法,但应该意识到它们没有做任何有用的事情。调用 Tie::Scalar::FETCHTie::Scalar::STORE 会导致(可捕获的)错误。如果你继承自 Tie::Scalar,你必须提供 newTIESCALAR 方法。

如果你正在寻找一个为你完成所有未定义操作的类,请使用 Tie::StdScalar 类,而不是 Tie::Scalar 类。

更多信息

perltie 部分使用了一个很好的例子,通过将进程 ID 与优先级关联来绑定标量。