Moose::Meta::Attribute::Native::Trait::Hash(3pm)
NAME
Moose::Meta::Attribute::Native::Trait::Hash - Helper trait for HashRef
attributes
SYNOPSIS
package Stuff;
use Moose;
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 hashlike operations.
PROVIDED METHODS
These methods are implemented in
Moose::Meta::Attribute::Native::MethodProvider::Hash.
- get($key, $key2, $$kkeeyy33...)
- 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, $$kkeeyy22 => $value2...)
- Sets the elements in the hash to the given values.
- delete($key, $key2, $$kkeeyy33...)
- Removes the elements with the given keys.
- keys
- Returns the list of keys in the hash.
- 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.
- 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
has_method_provider
BUGS
See "BUGS" in Moose for details on reporting bugs.
AUTHOR
Stevan Little <stevan@iinteractive.com>
COPYRIGHT AND LICENSE
Copyright 2007-2009 by Infinity Interactive, Inc.
<http://www.iinteractive.com>
- This library is free software; you can redistribute it and/or modify it
under the same terms as Perl itself.