---
name: "MouseX::NativeTraits::HashRef"
section: "3pm"
platform: "linux"
package: "libmousex-nativetraits-perl"
version: "1.09-3"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/MouseX::NativeTraits::HashRef"
---

# MouseX::NativeTraits::HashRef(3pm)

Helper trait for HashRef attributes

## NAME

MouseX::NativeTraits::HashRef - Helper trait for HashRef attributes

## SYNOPSIS

```
  package Stuff;
  use Mouse;
  has 'options' => (
      traits    => ['Hash'],
      is        => 'ro',
      isa       => 'HashRef[Str]',
      default   => sub { {} },
      handles   => {
          set_option     => 'set',
          get_option     => 'get',
          has_no_options => 'is_empty',
          num_options    => 'count',
          delete_option  => 'delete',
          pairs          => 'kv',
      },
  );
```

## DESCRIPTION

This module provides a Hash attribute which provides a number of hash-like operations.

## PROVIDED METHODS

These methods are implemented in MouseX::NativeTraits::MethodProvider::HashRef.

- **get($key, $key2, $key3...)**

  Returns values from the hash.

  In list context return a list of values in the hash for the given keys. In scalar context returns the value for the last key specified.

- **set($key =\> $value, $key2 =\> $value2...)**

  Sets the elements in the hash to the given values.

- **delete($key, $key2, $key3...)**

  Removes the elements with the given keys.

- **exists($key)**

  Returns true if the given key is present in the hash.

- **defined($key)**

  Returns true if the value of a given key is defined.

- **keys**

  Returns the list of keys in the hash.

- **sorted\_keys**

  Returns the list of sorted keys in the hash.

- **values**

  Returns the list of values in the hash.

- **kv**

  Returns the key/value pairs in the hash as an array of array references.

  ```
    for my $pair ( $object->options->pairs ) {
        print "$pair->[0] = $pair->[1]\n";
    }
  ```

- **elements**

  Returns the key/value pairs in the hash as a flattened list.

- **clear**

  Resets the hash to an empty value, like `"%hash = ()"`.

- **count**

  Returns the number of elements in the hash. Also useful for not empty:  `"has_options => 'count'"`.

- **is\_empty**

  If the hash is populated, returns false. Otherwise, returns true.

- **accessor**

  If passed one argument, returns the value of the specified key. If passed two arguments, sets the value of the specified key.

## METHODS

- **meta**

  - **method\_provider\_class**

  - **helper\_type**

  ## SEE ALSO

MouseX::NativeTraits
