【发布时间】:2016-11-12 00:38:33
【问题描述】:
我开始使用 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”错误,但结果却是:
属性(状态)未通过类型约束,因为:在访问器 MyTest::s 状态(在 MyTest.pm 第 10 行定义)第 4 行,“Maybe[MyStatus]”的验证失败,值为 100 em>
如何使该消息起作用? 谢谢!
【问题讨论】:
-
请不要重新输入错误信息。而是复制并粘贴它们。您的斜体引文中有拼写错误。 ;-)
-
我复制粘贴了
-
那么它可能是输出中的换行符,因为您的终端窗口对于文本来说太小了。没关系。 ;)
-
您是否将其复制并粘贴在两个部分中? “MyTest::s status”中有一个空格:-)
-
那是 cmd 窗口中的线闸(在 Windows 上)。