NAME
Tie::Scalar, Tie::StdScalar - base class definitions for tied scalars
SYNOPSIS
package NewScalar;require Tie::Scalar;@ISA = (Tie::Scalar);sub FETCH { ... } # Provide a needed methodsub TIESCALAR { ... } # Overrides inherited methodpackage NewStdScalar;require Tie::Scalar;@ISA = (Tie::StdScalar);# All methods provided by default, so define only what needs be overriddensub FETCH { ... }package main;tie $new_scalar, 'NewScalar';tie $new_std_scalar, 'NewStdScalar';
DESCRIPTION
This module provides some skeletal methods for scalar-tying classes. See the perltie manpage 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 the methods specified in the perltie manpage. 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, the methods are summarized below. The the perltie manpage section not only documents these, but has sample code as well:
- TIESCALAR classname, LIST
-
The method invoked by the command
tie $scalar, classname. Associates a new scalar instance with the specified class.LISTwould represent additional arguments (along the lines of the AnyDBM_File manpage and compatriots) needed to complete the association.
- FETCH this
-
Retrieve the value of the tied scalar referenced by this.
- STORE this, value
-
Store data value in the tied scalar referenced by this.
- DESTROY this
-
Free the storage associated with the tied scalar referenced by this. This is rarely needed, as Perl manages its memory quite well. But the option exists, should a class wish to perform specific actions upon the destruction of an instance.
MORE INFORMATION
The the perltie manpage section uses a good example of tying scalars by associating process IDs with priority.