Moose - принуждение от Num к ArrayRef [Num]? - PullRequest
2 голосов
/ 24 сентября 2011

Хорошо, что я делаю не так - Мус игнорирует мое принуждение:

package moo;

use Moose;
use Moose::Util::TypeConstraints;

subtype Bar => as 'ArrayRef[Num]';

coerce 'Bar' =>
  from 'Num' => via { [ 10 ] }; # this doesn't seem to be getting called

has x => (
  is => 'rw',
  isa => 'Bar',
);

package main;

my $m1 = moo->new(x => [ 3 ]);  # works
my $m2 = moo->new(x => 5);      # doesn't work

1 Ответ

7 голосов
/ 24 сентября 2011

Возможно, вы забыли coerce => 1 при определении атрибута x.

has x => ( is  => 'rw', isa => 'Bar', coerce => 1 );

`

...