X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=blobdiff_plain;f=lib%2FMoose%2FAutobox%2FArray.pm;h=62344356ca1c4ce4fdc26f8409125e9496a9966b;hb=09a0196c32a63189d212a905146e0271861255b7;hp=ab882614fe699ba79906b1d2634e54a6b7d7931c;hpb=3f4dd8b74b711eefe941a391a327389fb05abf7f;p=gitmo%2FMoose-Autobox.git diff --git a/lib/Moose/Autobox/Array.pm b/lib/Moose/Autobox/Array.pm index ab88261..6234435 100644 --- a/lib/Moose/Autobox/Array.pm +++ b/lib/Moose/Autobox/Array.pm @@ -117,26 +117,30 @@ sub kv { $array->keys->map(sub { [ $_, $array->[$_] ] }); } +sub flatten { + @{$_[0]} +} + ## Junctions sub all { my ($array) = @_; - return Perl6::Junction::All->all(@$array); + return Perl6::Junction::all(@$array); } sub any { my ($array) = @_; - return Perl6::Junction::Any->any(@$array); + return Perl6::Junction::any(@$array); } sub none { my ($array) = @_; - return Perl6::Junction::None->none(@$array); + return Perl6::Junction::none(@$array); } sub one { my ($array) = @_; - return Perl6::Junction::One->one(@$array); + return Perl6::Junction::one(@$array); } ## Print @@ -190,6 +194,8 @@ This is a role to describe operations on the Array type. =item B +=item B + =back =head2 Indexed implementation @@ -226,6 +232,24 @@ This is a role to describe operations on the Array type. =item B +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 to modify the list, viz: + + use Moose::Autobox; + + my $foo = [1, 2, 3]; + $foo->map( sub {$_++} ); + print $foo->dump; + +yields + + $VAR1 = [ + 2, + 3, + 4 + ]; + =item B =item B @@ -268,7 +292,7 @@ Stevan Little Estevan@iinteractive.comE =head1 COPYRIGHT AND LICENSE -Copyright 2006 by Infinity Interactive, Inc. +Copyright 2006-2008 by Infinity Interactive, Inc. L