perl – MooseX ::声明如何从属性默认方法返回ArrayRef?

perl – MooseX ::声明如何从属性默认方法返回ArrayRef?,第1张

概述我意识到这可能是我对perl或Moose的某些部分的基本误解,但我似乎无法从默认方法返回ArrayRef: has '_directories' => ( is => 'ro', isa => 'ArrayRef[Str]', lazy => 1, init_arg => undef, default => method {return File:: 我意识到这可能是我对perl或Moose的某些部分的基本误解,但我似乎无法从默认方法返回ArrayRef:

has '_directorIEs' => (    is => 'ro',isa => 'ArrayRef[Str]',lazy => 1,init_arg => undef,default => method {return file::Spec->splitdir($self->relativeDirectory)});

得到:

Attribute (_directorIEs) does not pass the type constraint because: ValIDation Failed for 'ArrayRef[Str]' with value 3

我该如何解决这个问题?

解决方法 splitdir返回列表,而不是arrayref.您可以使用[]构造函数从列表构造arrayref:

default => method {return [ file::Spec->splitdir($self->relativeDirectory) ] },
总结

以上是内存溢出为你收集整理的perl – MooseX ::声明如何从属性默认方法返回ArrayRef?全部内容,希望文章能够帮你解决perl – MooseX ::声明如何从属性默认方法返回ArrayRef?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/langs/1250479.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-07
下一篇 2022-06-07

发表评论

登录后才能评论

评论列表(0条)

保存