On Sun, May 3, 2009 at 11:56 PM, fREW Schmidt <fri...@gmail.com> wrote: > On Sun, May 3, 2009 at 2:22 PM, Hans Dieter Pearcey <h...@pobox.com> wrote: > >> On Sun, May 03, 2009 at 10:24:54AM -0500, fREW Schmidt wrote: >> > [ %{$data}->values->map->(sub { $_ + 1 }) ] >> >> don't dereference $data; your sanity check example uses a hashref, not a >> hash, >> so it works fine. > > > I must be missing something, because I tried that and it still doesn't > work. To be clear, here's the class:
Check your assumptions again because: $ perl -MMoose::Autobox -E '{ foo => q[bar] }->values->print' bar $ perl -MMoose::Autobox -E '{ foo => 1 }->values->map(sub { $_ + 1 })->print' 2 # perl -MMoose::Autobox -E 'my $d = { foo => 1 }; $d->values->map(sub { $_ + 1 })->print' 2 $ perl -MMoose::Autobox -Moose -e 'sub foo { my $d = { f => 1 }; $d->values->map(sub { $_ + 1 })->print }; package main; Class->new->foo()' 2 $ perl -MMoose::Autobox -MMooseX::Declare -E 'class F { method foo { my $d = { foo => 1 }; $d->values->map(sub { $_ + 1 })->print } } F->new()->foo' 2 Perhaps Method::Signatures isn't doing what you think? > package Foo; > use Moose; > use Carp qw(croak carp cluck); > use Method::Signatures; > use Moose::Autobox; > > method foo { > my $data = { > foo => 1, > bar => 2, > }; > return { > [ $data->values->map->(sub { $_ + 1 }) ] > }; > } > > no Moose; > __PACKAGE__->meta->make_immutable; > > > And now I get this error: > > Can't call method "values" on unblessed reference > > > > -- > fREW Schmidt > http://blog.afoolishmanifesto.com >