Tie::Scalar(3perl) | Perl Programmers Reference Guide | Tie::Scalar(3perl) |
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 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::StdScalar 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:
"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 perltie section uses a good example of tying scalars by associating process IDs with priority.
2020-07-21 | perl v5.28.1 |