Tie::StdScalar - base class definitions for tied scalars |
Tie::Scalar, Tie::StdScalar - base class definitions for tied scalars
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';
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:
tie $scalar, classname
. Associates a new
scalar instance with the specified class. LIST
would represent additional
arguments (along the lines of the AnyDBM_File manpage and compatriots) needed to
complete the association.
Tie::Scalar
provides all the necessary methods, but one should realize
they do not do anything useful. Calling Tie::Scalar::FETCH
or
Tie::Scalar::STORE
results in a (trappable) croak. And if you inherit
from Tie::Scalar
, you must provide either a new
or a
TIESCALAR
method.
If you are looking for a class that does everything for you you don't
define yourself, use the Tie::StdScalar
class, not the
Tie::Scalar
one.
The the perltie manpage section uses a good example of tying scalars by associating process IDs with priority.
Tie::StdScalar - base class definitions for tied scalars |