List::Objects::WithUtils::Autobox - Native data types WithUtils
use List::Objects::WithUtils 'autobox';
my @upper = [ qw/foo bar baz/ ]->map(sub { uc })->all;
my @sorted_keys = { foo => 'bar', baz => 'quux' }->keys->sort->all;
# See List::Objects::WithUtils::Role::Array
# and List::Objects::WithUtils::Role::Hash
This module is a subclass of autobox that provides List::Objects::WithUtils
methods for native ARRAY and HASH types; you can treat native Perl list
references as if they were List::Objects::WithUtils::Array or
List::Objects::WithUtils::Hash instances.
Like autobox, the effect is lexical in scope and can be
disabled:
use List::Objects::WithUtils::Autobox;
my $foo = [3,2,1]->sort;
no List::Objects::WithUtils::Autobox;
[3,2,1]->sort; # dies
You can't call new on autoboxed refs (but that would be a silly thing to
do anyway -- and if you're really determined,
"[]->copy" has the same effect).
It's worth noting that methods that create new lists will return
blessed objects, not native data types. This lets you continue passing
result collections around to other pieces of Perl that wouldn't otherwise
know how to call the autoboxed methods. (Some methods do return the object
they were originally operating on, in which case the original reference is
indeed returned, as expected.)
Jon Portnoy <avenj@cobaltirc.org>