---
name: "Tie::Scalar"
section: "3pm"
platform: "linux"
package: "perl-5.004-doc"
version: "5.004.05-6"
release: "Debian 2.2 (Potato)"
platforms: ["linux"]
url: "https://new.carta.tech/Tie::Scalar/3pm"
---

# Tie::Scalar(3pm)

base class definitions for tied scalars

## 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 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:\

- TIESCALAR classname, LIST

  The method invoked by the command `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.\

- 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 the *perltie* manpage section uses a good example of tying scalars by associating process IDs with priority.
