tie::scalar(3)
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 method
sub TIESCALAR { ... } # Overrides inherited
method
package NewStdScalar;
require Tie::Scalar;
@ISA = (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';
DESCRIPTION
This module provides some skeletal methods for scalartying classes. See perltie 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::Std
Scalar package provides all the methods specified in
perltie. 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 perltie
section not only documents these, but has sample code as
well:
- TIESCALAR classname, LIST
- The method invoked by the command "tie $scalar, class
name". Associates a new scalar instance with the spec
ified class. "LIST" would represent additional argu
ments (along the lines of AnyDBM_File 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 perltie section uses a good example of tying scalars
by associating process IDs with priority.