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
>

Reply via email to