Полезная информация

Programming Perl

Programming PerlSearch this book
Previous: 7.2.72 Tie::Hash, Tie::StdHash - Base Class Definitions for Tied HashesChapter 7
The Standard Perl Library
Next: 7.2.74 Tie::SubstrHash - Fixed-table-size, Fixed-key-length Hashing
 

7.2.73 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 Chapter 5 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 Chapter 5. 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. (Chapter 5 not only documents these, but also has sample code.)

TIESCALAR ClassName, LIST

The method invoked by the command:

tie $scalar, ClassName, LIST

Associates a new scalar instance with the specified class. LIST would represent additional arguments (along the lines of the AnyDBM_File library module and associated modules) needed to complete the association.

FETCH this

Retrieve the value of the tied scalar referenced by this.

STORE this, value

Store 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, since Perl manages its memory well. But the option exists, should a class wish to perform specific actions upon the destruction of an instance.

7.2.73.1 See also

Chapter 5 has a good example using tied scalars to associate process IDs with priority.


Previous: 7.2.72 Tie::Hash, Tie::StdHash - Base Class Definitions for Tied HashesProgramming PerlNext: 7.2.74 Tie::SubstrHash - Fixed-table-size, Fixed-key-length Hashing
7.2.72 Tie::Hash, Tie::StdHash - Base Class Definitions for Tied HashesBook Index7.2.74 Tie::SubstrHash - Fixed-table-size, Fixed-key-length Hashing