---
name: "Tie::Hash"
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::Hash/3pm"
---

# Tie::Hash(3pm)

base class definitions for tied hashes

## NAME

Tie::Hash, Tie::StdHash - base class definitions for tied hashes

## SYNOPSIS

```
    package NewHash;
    require Tie::Hash;

    @ISA = (Tie::Hash);

    sub DELETE { ... }          # Provides needed method
    sub CLEAR { ... }           # Overrides inherited method

    package NewStdHash;
    require Tie::Hash;

    @ISA = (Tie::StdHash);

    # All methods provided by default, define only those needing overrides
    sub DELETE { ... }

    package main;

    tie %new_hash, 'NewHash';
    tie %new_std_hash, 'NewStdHash';
```

## DESCRIPTION

This module provides some skeletal methods for hash-tying classes. See the *perltie* manpage for a list of the functions required in order to tie a hash to a package. The basic **Tie::Hash** package provides a `new` method, as well as methods `TIEHASH`, `EXISTS` and `CLEAR`. The **Tie::StdHash** package provides most methods required for hashes in the *perltie* manpage. It inherits from **Tie::Hash**, and causes tied hashes to behave exactly like standard hashes, allowing for selective overloading of methods. The `new` method is provided as grandfathering in the case a class forgets to include a `TIEHASH` method.

For developers wishing to write their own tied hashes, the required methods are briefly defined below. See the the *perltie* manpage section for more detailed descriptive, as well as example code:\

- TIEHASH classname, LIST

  The method invoked by the command `tie %hash, classname`. Associates a new hash 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.\

- STORE this, key, value

  Store datum *value* into *key* for the tied hash *this*.\

- FETCH this, key

  Retrieve the datum in *key* for the tied hash *this*.\

- FIRSTKEY this

  Return the (key, value) pair for the first key in the hash.\

- NEXTKEY this, lastkey

  Return the next key for the hash.\

- EXISTS this, key

  Verify that *key* exists with the tied hash *this*.\

- DELETE this, key

  Delete the key *key* from the tied hash *this*.\

- CLEAR this

  Clear all values from the tied hash *this*.

## CAVEATS

The the *perltie* manpage documentation includes a method called `DESTROY` as a necessary method for tied hashes. Neither **Tie::Hash** nor **Tie::StdHash** define a default for this method. This is a standard for class packages, but may be omitted in favor of a simple default.

## MORE INFORMATION

The packages relating to various DBM-related implemetations (*DB\_File*, *NDBM\_File*, etc.) show examples of general tied hashes, as does the the *Config* manpage module. While these do not utilize **Tie::Hash**, they serve as good working examples.
