Bring the list::util functions to autobox
Version 20090629
\*(C`autobox::List::Util\*(C' brings all of the functions from List::Util to arrays as methods.
use autobox::List::Util; my @array = qw/ foo bar baz /; print @array->first(sub { /ar/ }), "\n"; # "bar" print [5, 6, 3, 4]->max, "\n"; # 6 print @array->maxstr, "\n"; # baz print [5, 6, 3, 4]->min, "\n"; # 3 print @array->minstr, "\n"; # foo print [1 .. 10]->shuffle, "\n"; #1 to 10 randomly shuffled print [1 .. 10]->sum, "\n"; # 55 print [1 .. 10]->reduce( sub { $a + $b } ), "\n"; # 55
This method behaves nearly the same as the first function from List::Util, but it takes a coderef not a block because methods can't use prototypes.
This method behaves nearly the same as the reduce function from List::Util, but it takes a coderef not a block for the same reason. It also has a bug (see \s-1BUGS\s0)
If called in scalar context it returns a reference to an array instead of a list. This allows shuffle to be chained with other calls.
These methods behave exactly the same as their List::Util counterparts.
Chas. J. Owens \s-1IV\s0, \*(C`<chas.owens at gmail.com>\*(C'
The reduce method works with $main::a and $main::b, not your current package's $a and $b, so you need to say
print @array->reduce( sub { $main::a + $main::b } ), "\n";
if you are not in the main package. Reduce uses $_, so it doesn't suffer from this problem.
You can find documentation for this module with the perldoc command.
perldoc autobox::List::Util
You can also look for information at:
\s-1RT:\s0 \s-1CPAN\s0's request tracker http://rt.cpan.org/NoAuth/Bugs.html?Dist=autobox-List-Util <http://rt.cpan.org/NoAuth/Bugs.html?Dist=autobox-List-Util>
AnnoCPAN: Annotated \s-1CPAN\s0 documentation http://annocpan.org/dist/autobox-List-Util <http://annocpan.org/dist/autobox-List-Util>
\s-1CPAN\s0 Ratings http://cpanratings.perl.org/d/autobox-List-Util <http://cpanratings.perl.org/d/autobox-List-Util>
Search \s-1CPAN\s0 http://search.cpan.org/dist/autobox-List-Util/ <http://search.cpan.org/dist/autobox-List-Util/>
Copyright 2009 Chas. J. Owens \s-1IV\s0, all rights reserved.
This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.