Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/perl/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Perl “ArrayReffHashRefs”子类型在驼鹿中不起作用_Perl_Moose - Fatal编程技术网

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。其余的都可以。

看一看,这在处理对象时非常有用。看一看,这在处理对象时非常有用。