Perl “ArrayReffHashRefs”子类型在驼鹿中不起作用
我画了一个小草图,试图了解子类型的窍门:Perl “ArrayReffHashRefs”子类型在驼鹿中不起作用,perl,moose,Perl,Moose,我画了一个小草图,试图了解子类型的窍门: #!/usr/bin/perl # use strict; use warnings; package Foo; use Moose; use Moose::Util::TypeConstraints; use Data::Dumper; subtype 'ArrayRefOfHashrefs' => as 'ArrayRef[Hashref]'; has 'thingy' => ( 'is' => 'ro', 'isa' =&g
#!/usr/bin/perl
#
use strict;
use warnings;
package Foo;
use Moose;
use Moose::Util::TypeConstraints;
use Data::Dumper;
subtype 'ArrayRefOfHashrefs' => as 'ArrayRef[Hashref]';
has 'thingy' => ( 'is' => 'ro', 'isa' => 'ArrayRefOfHashrefs' );
package main;
my $foo = Foo->new('thingy' => [{ 'id' => 12 }]);
# The above produces:
use Data::Dumper;
print Dumper $foo->thingy;
当我尝试运行它时,我得到:
属性thingy未通过类型约束,因为:在/[PATH]/site_perl/5.18.4/darwin2level/Moose/Object.pm第24行对值为ARRAY0x7fda83028e08的“ArrayRefFashRefs”进行验证失败
Moose::Object::在../sketchs/arrayrefhfhashrefs.pl第17行调用新的'Foo','thingy','ARRAY0x7fda83028e08'
我做错了什么?你的打字错误。Hashref被称为大写字母R的Hashref。其余的都可以。您有一个输入错误。Hashref被称为大写字母R的Hashref。其余的都可以。看一看,这在处理对象时非常有用。看一看,这在处理对象时非常有用。