Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
Moose::Meta::AttributeUsertContributedMPerl:Docribute::Native::Trait::Array(3)

NAME
       Moose::Meta::Attribute::Native::Trait::Array - Helper trait for
       ArrayRef	attributes

VERSION
       version 2.2013

SYNOPSIS
	   package Stuff;
	   use Moose;

	   has 'options' => (
	       traits  => ['Array'],
	       is      => 'ro',
	       isa     => 'ArrayRef[Str]',
	       default => sub {	[] },
	       handles => {
		   all_options	  => 'elements',
		   add_option	  => 'push',
		   map_options	  => 'map',
		   filter_options => 'grep',
		   find_option	  => 'first',
		   get_option	  => 'get',
		   join_options	  => 'join',
		   count_options  => 'count',
		   has_options	  => 'count',
		   has_no_options => 'is_empty',
		   sorted_options => 'sort',
	       },
	   );

	   no Moose;
	   1;

DESCRIPTION
       This trait provides native delegation methods for array references.

DEFAULT	TYPE
       If you don't provide an "isa" value for your attribute, it will default
       to "ArrayRef".

PROVIDED METHODS
       o   count

	   Returns the number of elements in the array.

	     $stuff = Stuff->new;
	     $stuff->options( [	"foo", "bar", "baz", "boo" ] );

	     print $stuff->count_options; # prints 4

	   This	method does not	accept any arguments.

       o   is_empty

	   Returns a boolean value that	is true	when the array has no
	   elements.

	     $stuff->has_no_options ? die "No options!\n" : print "Good	boy.\n";

	   This	method does not	accept any arguments.

       o   elements

	   In list context, returns all	of the elements	of the array as	a
	   list.

	   In scalar context, returns the number of elements in	the array.

	     my	@options = $stuff->all_options;
	     print "@options";	  # prints "foo	bar baz	boo"
	     print scalar $stuff->all_options; # prints	4

	   This	method does not	accept any arguments.

       o   get($index)

	   Returns an element of the array by its index. You can also use
	   negative index numbers, just	as with	Perl's core array handling.

	     my	$option	= $stuff->get_option(1);
	     print "$option\n";	   # prints "bar"

	   If the specified element does not exist, this will return "undef".

	   This	method accepts just one	argument.

       o   pop

	   Just	like Perl's builtin "pop".

	   This	method does not	accept any arguments.

       o   push($value1, $value2, value3 ...)

	   Just	like Perl's builtin "push". Returns the	number of elements in
	   the new array.

	   This	method accepts any number of arguments.

       o   shift

	   Just	like Perl's builtin "shift".

	   This	method does not	accept any arguments.

       o   unshift($value1, $value2, value3 ...)

	   Just	like Perl's builtin "unshift". Returns the number of elements
	   in the new array.

	   This	method accepts any number of arguments.

       o   splice($offset, $length, @values)

	   Just	like Perl's builtin "splice". In scalar	context, this returns
	   the last element removed, or	"undef"	if no elements were removed.
	   In list context, this returns all the elements removed from the
	   array.

	   This	method requires	at least one argument.

       o   first( sub {	... } )

	   This	method returns the first matching item in the array, just like
	   List::Util's	"first"	function. The matching is done with a
	   subroutine reference	you pass to this method. The subroutine	will
	   be called against each element in the array until one matches or
	   all elements	have been checked.  Each list element will be
	   available to	the sub	in $_.

	     my	$found = $stuff->find_option( sub {/^b/} );
	     print "$found\n";	  # prints "bar"

	   This	method requires	a single argument.

       o   first_index(	sub { ... } )

	   This	method returns the index of the	first matching item in the
	   array, just like "first_index" in List::SomeUtils. The matching is
	   done	with a subroutine reference you	pass to	this method. The
	   subroutine will be called against each element in the array until
	   one matches or all elements have been checked. Each list element
	   will	be available to	the sub	in $_.	If no match is made, -1	is
	   returned.

	   This	method requires	a single argument.

       o   grep( sub { ... } )

	   This	method returns every element matching a	given criteria,	just
	   like	Perl's core "grep" function. This method requires a subroutine
	   which implements the	matching logic;	each list element will be
	   available to	the sub	in $_.

	     my	@found = $stuff->filter_options( sub {/^b/} );
	     print "@found\n";	  # prints "bar	baz boo"

	   This	method requires	a single argument.

       o   map(	sub { ... } )

	   This	method transforms every	element	in the array and returns a new
	   array, just like Perl's core	"map" function.	This method requires a
	   subroutine which implements the transformation; each	list element
	   will	be available to	the sub	in $_.

	     my	@mod_options = $stuff->map_options( sub	{ $_ . "-tag" }	);
	     print "@mod_options\n";	# prints "foo-tag bar-tag baz-tag boo-tag"

	   This	method requires	a single argument.

       o   reduce( sub { ... } )

	   This	method turns an	array into a single value, by passing a
	   function the	value so far and the next value	in the array, just
	   like	List::Util's "reduce" function.	The reducing is	done with a
	   subroutine reference	you pass to this method; each list element
	   will	be available to	the sub	in $_.

	     my	$found = $stuff->reduce_options( sub { $_[0] . $_[1] } );
	     print "$found\n";	  # prints "foobarbazboo"

	   This	method requires	a single argument.

       o   sort

       o   sort( sub { ... } )

	   Returns the elements	of the array (not an array reference) in
	   sorted order, or, like "elements", returns the number of elements
	   in the array	in scalar context.

	   You can provide an optional subroutine reference to sort with (as
	   you can with	Perl's core "sort" function). However, instead of
	   using $a and	$b in this subroutine, you will	need to	use $_[0] and
	   $_[1].

	     # ascending ASCIIbetical
	     my	@sorted	= $stuff->sort_options();

	     # Descending alphabetical order
	     my	@sorted_options	= $stuff->sort_options(	sub { lc $_[1] cmp lc $_[0] } );
	     print "@sorted_options\n";	   # prints "foo boo baz bar"

	   This	method accepts a single	argument.

       o   sort_in_place

       o   sort_in_place( sub {	... } )

	   Sorts the array in place, modifying the value of the	attribute.

	   You can provide an optional subroutine reference to sort with (as
	   you can with	Perl's core "sort" function). However, instead of
	   using $a and	$b, you	will need to use $_[0] and $_[1] instead.

	   This	method does not	define a return	value.

	   This	method accepts a single	argument.

       o   shuffle

	   Returns the elements	of the array in	random order, like "shuffle"
	   from	List::Util.

	   This	method does not	accept any arguments.

       o   uniq

	   Returns the array with all duplicate	elements removed, like "uniq"
	   in List::Util.

	   This	method does not	accept any arguments.

       o   join($str)

	   Joins every element of the array using the separator	given as
	   argument, just like Perl's core "join" function.

	     my	$joined	= $stuff->join_options(':');
	     print "$joined\n";	   # prints "foo:bar:baz:boo"

	   This	method requires	a single argument.

       o   set($index, $value)

	   Given an index and a	value, sets the	specified array	element's
	   value.

	   This	method returns the value at $index after the set.

	   This	method requires	two arguments.

       o   delete($index)

	   Removes the element at the given index from the array.

	   This	method returns the deleted value. Note that if no value
	   exists, it will return "undef".

	   This	method requires	one argument.

       o   insert($index, $value)

	   Inserts a new element into the array	at the given index.

	   This	method returns the new value at	$index.

	   This	method requires	two arguments.

       o   clear

	   Empties the entire array, like "@array = ()".

	   This	method does not	define a return	value.

	   This	method does not	accept any arguments.

       o   accessor($index)

       o   accessor($index, $value)

	   This	method provides	a get/set accessor for the array, based	on
	   array indexes.  If passed one argument, it returns the value	at the
	   specified index.  If	passed two arguments, it sets the value	of the
	   specified index.

	   When	called as a setter, this method	returns	the new	value at
	   $index.

	   This	method accepts one or two arguments.

       o   natatime($n)

       o   natatime($n,	$code)

	   This	method returns an iterator which, on each call,	returns	$n
	   more	items from the array, in order,	like "natatime"	in
	   List::SomeUtils.

	   If you pass a coderef as the	second argument, then this code	ref
	   will	be called on each group	of $n elements in the array until the
	   array is exhausted.

	   This	method accepts one or two arguments.

       o   shallow_clone

	   This	method returns a shallow clone of the array reference.	The
	   return value	is a reference to a new	array with the same elements.
	   It is shallow because any elements that were	references in the
	   original will be the	same references	in the clone.

BUGS
       See "BUGS" in Moose for details on reporting bugs.

AUTHORS
       o   Stevan Little <stevan.little@iinteractive.com>

       o   Dave	Rolsky <autarch@urth.org>

       o   Jesse Luehrs	<doy@tozt.net>

       o   Shawn M Moore <code@sartak.org>

       o   xxxx	x<section>xx'xx	(Yuval Kogman) <nothingmuch@woobling.org>

       o   Karen Etheridge <ether@cpan.org>

       o   Florian Ragwitz <rafl@debian.org>

       o   Hans	Dieter Pearcey <hdp@weftsoar.net>

       o   Chris Prather <chris@prather.org>

       o   Matt	S Trout	<mst@shadowcat.co.uk>

COPYRIGHT AND LICENSE
       This software is	copyright (c) 2006 by Infinity Interactive, Inc.

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

perl v5.32.0		       Moose::Meta::Attribute::Native::Trait::Array(3)

NAME | VERSION | SYNOPSIS | DESCRIPTION | DEFAULT TYPE | PROVIDED METHODS | BUGS | AUTHORS | COPYRIGHT AND LICENSE

Want to link to this manual page? Use this URL:
<https://www.freebsd.org/cgi/man.cgi?query=Moose::Meta::Attribute::Native::Trait::Array&sektion=3&manpath=FreeBSD+12.1-RELEASE+and+Ports>

home | help