[Chapter 7] 7.2.73 Tie::Scalar, Tie::StdScalar - Base Class Definitions for Tied Scalars
Author: Larry Wall, Tom Christiansen & Randal L. Schwartz
Date: 1999-07-02T02:05:18Z

#

| Chapter 7 The Standard Perl Library |

### 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.

7.2.72 Tie::Hash, Tie::StdHash - Base Class Definitions for Tied Hashes |  | 7.2.74 Tie::SubstrHash - Fixed-table-size, Fixed-key-length Hashing