Data::...::Hash(3pm)

πŸ’– Data::Perl::Role::Collection::Hash β€” a.k.a. the Data::...::Hash(3pm) page πŸ’–

okay bestie, pull up a chair 🫢 this is the manual page for Data::Perl::Role::Collection::Hash, which is the wrapping class for Perl's built-in hash structure. yes, that kind of hash. the %sigil kind. the good kind. no cap. πŸŽ€


✨ NAME ✨

Data::Perl::Role::Collection::Hash β€” Wrapping class for Perl's built in hash structure. πŸ¦‹


🌸 VERSION 🌸

version 0.002011


⭐ SYNOPSIS ⭐

use Data::Perl qw/hash/;

my $hash = hash(a => 1, b => 2);

$hash->values; # (1, 2)

$hash->set('foo', 'bar'); # (a => 1, b => 2, foo => 'bar')

look at her go. literal main character energy. πŸ‘‘


πŸ’… DESCRIPTION πŸ’…

So what even is this. This class provides a wrapper and methods for interacting with a hash. That's it, that's the vibe. πŸ’œ

and the important lil detail: All methods that return a list do so via a Data::Perl::Collection::Array object. so when something says "returns a list" don't come for me expecting a plain old list β€” it's handing you an array object, okay bestie? iykyk. ✨


πŸŽ€ PROVIDED METHODS πŸŽ€

new($key, $value, ...)

Given an optional list of keys/values, constructs a new Data::Perl::Collection::Hash object initialized with keys/values and returns it. πŸ’–

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

Returns a list of values in the hash for the given keys.

⚠️ real talk: this method requires at least one argument. no arguments, no vibes. 😭

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

Sets the elements in the hash to the given values. It returns the new values set for each key, in the same order as the keys passed to the method. 🌈

⚠️ this method requires at least two arguments, and expects an even number of arguments. pairs only, periodt. πŸ’…

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

Removes the elements with the given keys. πŸ—‘οΈ

Returns a list of values in the hash for the deleted keys.

keys

Returns the list of keys in the hash. πŸ”‘

⚠️ This method does not accept any arguments.

exists($key)

Returns true if the given key is present in the hash. βœ…

⚠️ This method requires a single argument.

defined($key)

Returns true if the value of a given key is defined. πŸ‘€

⚠️ This method requires a single argument.

values

Returns the list of values in the hash. πŸ“

⚠️ This method does not accept any arguments.

kv

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

for my $pair ( $object->option_pairs ) {
    print "$pair->[0] = $pair->[1]\n";
}
⚠️ This method does not accept any arguments.

elements/all

Returns the key/value pairs in the hash as a flattened list.. (yes the double period is canon, we respect the source) 😌

⚠️ This method does not accept any arguments.

clear

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

⚠️ This method does not accept any arguments.

count

Returns the number of elements in the hash. Also useful for not empty: has_options => 'count'. πŸ”’

⚠️ This method does not accept any arguments.

is_empty

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

⚠️ This method does not accept any arguments.

accessor($key) / accessor($key, $value)

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

When called as a setter, this method returns the value that was set.

shallow_clone

This method returns a shallow clone of the hash reference. The return value is a reference to a new hash with the same keys and values. It is shallow because any values that were references in the original will be the same references in the clone. πŸͺž

_array_class

The name of the class which returned lists are instances of; i.e. Data::Perl::Collection::Array.

Subclasses of this class can override this method. πŸ’…


🚨 important note, bestie, do NOT skip this one: Note that each is deliberately omitted, due to its stateful interaction with the hash iterator. keys or kv are much safer. fr fr. πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

  • Data::Perl
  • MooX::HandlesVia

🌟 AUTHOR 🌟

Matthew Phillips <mattp@cpan.org>


This software is copyright (c) 2020 by Matthew Phillips <mattp@cpan.org>.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.


and that's the whole page, gorgeous ✨ this was perl v5.36.0, dated 2022-10-16, and it's the Data::...::Hash(3pm) page. go forth and slay your hashes, bestie πŸ’–πŸŽ€πŸ¦‹

πŸ“¦ where this page comes from