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
方法,以及 TIESCALAR
、FETCH
和 STORE
方法。Tie::StdScalar 套件提供 perltie 中指定的所有方法。它繼承自 Tie::Scalar,並使繫結至它的純量表現得與內建純量完全相同,允許選擇性地覆寫方法。new
方法提供給忘記提供自己的 TIESCALAR
方法的類別,作為傳統支援。
對於想要撰寫自己的繫結純量類別的開發人員,以下摘要說明了這些方法。 perltie 區段不僅記載了這些方法,還提供了範例程式碼
由指令 tie $scalar, classname
呼叫的方法。將新的純量執行個體與指定的類別關聯起來。LIST
會表示完成關聯所需的附加引數(類似於 AnyDBM_File 和同類項)。
擷取由 this 參照的繫結純量的值。
將資料 value 儲存在由 this 參照的繫結純量中。
釋放與由 this 參照的繫結純量關聯的儲存空間。這很少需要,因為 Perl 管理其記憶體的方式非常好。但是,如果類別希望在執行個體毀損時執行特定動作,則有此選項。
Tie::Scalar
提供所有必要的函式,但您應該了解它們沒有執行任何有用的動作。呼叫 Tie::Scalar::FETCH
或 Tie::Scalar::STORE
會導致 (可攔截的) croak。如果您繼承自 Tie::Scalar
,您必須提供 new
或 TIESCALAR
方法。
如果您正在尋找一個為您處理所有您未定義事項的類別,請使用 Tie::StdScalar
類別,而不是 Tie::Scalar
類別。
perltie 區段使用一個透過將程序 ID 與優先權關聯來繫結純量的好範例。