Moose::Autobox::Array − the Array role
version 0.16
use Moose::Autobox; [ 1..5 ]−>isa('ARRAY'); # true [ a..z ]−>does('Moose::Autobox::Array'); # true [ 0..2 ]−>does('Moose::Autobox::List'); # true print "Squares: " . [ 1 .. 10 ]−>map(sub { $_ * $_ })−>join(', '); print [ 1, 'number' ]−>sprintf('%d is the loneliest %s'); print ([ 1 .. 5 ]−>any == 3) ? 'true' : 'false'; # prints 'true'
This is a role to describe operations on the Array type.
"pop"
"push ($value)"
"shift"
"unshift ($value)"
"delete ($index)"
"sprintf ($format_string)"
"slice (@indices)"
"flatten"
"flatten_deep ($depth)"
"first"
"last"
Indexed implementation
"at ($index)"
"put ($index, $value)"
"exists ($index)"
"keys"
"values"
"kv"
"each"
"each_key"
"each_value"
"each_n_values ($n, $callback)"
List implementation
"head"
"tail"
"join (?$seperator)"
"length"
"map (\&block)"
"grep (\&block)"
Note that, in both the above, $_ is in scope within the code block, as well as being passed as $_[0]. As per CORE::map and CORE::grep, $_ is an alias to the list value, so can be used to modify the list, viz:
use Moose::Autobox; my $foo = [1, 2, 3]; $foo−>map( sub {$_++} ); print $foo−>dump;
yields
$VAR1 = [ 2, 3, 4 ];
"reverse"
"sort (?\&block)"
Junctions
"all"
"any"
"none"
"one"
"meta"
"print"
"say"
Bugs may be submitted through the RT bug tracker <https://rt.cpan.org/Public/Dist/Display.html?Name=Moose-Autobox> (or bug−Moose−Autobox AT rt DOT cpan DOT org <mailto:bug-Moose-Autobox AT rt DOT cpan DOT org>).
There is also a mailing list available for users of this distribution, at <http://lists.perl.org/list/moose.html>.
There is also an irc channel available for users of this distribution, at "#moose" on "irc.perl.org" <irc://irc.perl.org/#moose>.
Stevan Little <stevan DOT little AT iinteractive DOT com>
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.