Tie::Scalar, Tie::StdScalar - Base Class Definitions for Tied Scalars
package NewScalar; require Tie::Scalar; @ISA = (Tie::Scalar); sub FETCH {
...
}
# Provides additional method sub TIESCALAR {
...
}
# Overrides inherited method package NewStdScalar; require Tie::Scalar; @ISA = (Tie::StdScalar); sub FETCH {
...
}
package main; tie $new_scalar, "NewScalar"; tie $new_std_scalar, "NewStdScalar";
This module provides some skeletal methods for scalar-tying classes. (See for a list of the functions required in tying a scalar to a package.) The basic Tie::Scalar package provides a new() method, as well as methods TIESCALAR(), FETCH() and STORE(). The Tie::StdScalar package provides all methods specified in . It inherits from Tie::Scalar and causes scalars tied to it to behave exactly like the built-in scalars, allowing for selective overloading of methods. The new() method is provided as a means of grandfathering for classes that forget to provide their own TIESCALAR() method.
For developers wishing to write their own tied-scalar classes, methods are summarized below. ( not only documents these, but also has sample code.)
TIESCALARClassName,LIST- The method invoked by the command:
tie $scalar, ClassName,
LISTAssociates a new scalar instance with the specified class.
LISTwould represent additional arguments (along the lines of the AnyDBM_File library module and associated modules) needed to complete the association. FETCHthis- Retrieve the value of the tied scalar referenced by
this. STOREthis, value- Store
valuein the tied scalar referenced bythis. DESTROYthis- Free the storage associated with the tied scalar referenced by
this. This is rarely needed, since Perl manages its memory well. But the option exists, should a class wish to perform specific actions upon the destruction of an instance.
See also
has a good example using tied scalars to associate process IDs with priority.