Я начинаю использовать Moose. Вот мой тестовый пакет код:Moose: сообщение подтипа не отображается
package MyTest;
use Moose;
use Moose::Util::TypeConstraints;
subtype 'MyStatus',
as 'Int',
where { $_ >= 0 && $_ < 10 },
message { "Wrong status: $_" };
has status => (is => 'rw', isa => 'Maybe[MyStatus]');
no Moose; 1;
А вот программа:
use strict;
use warnings;
use MyTest;
my $t1 = MyTest->new('status' => 3);
$t1->status(100);
я ожидал получить «Неверный статус: 100» ошибка, но вместо этого я получил это:
Атрибут (статус) не передает ограничение типа, потому что: сбой проверки для «Может быть [MyStatus]» со значением 100 в accessor MyTest :: s tatus (определенный в MyTest.pm line 10) строка 4
Как заставить это сообщение работать? Спасибо!
Не повторяйте сообщения об ошибках. Скопируйте и вставьте их вместо этого. В курсивом цитата есть орфографическая ошибка. ;-) – simbabque
Я скопировал и вставил его – AndyH
Тогда это был, вероятно, разрыв строки в выходе, потому что окно терминала было слишком маленьким для текста. Неважно. ;) – simbabque