首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有效Hashref验证失败

有效Hashref验证失败
EN

Stack Overflow用户
提问于 2012-11-30 23:16:16
回答 1查看 698关注 0票数 1

我正在部署我的软件(第一次在一个新的环境中),并几乎立即碰壁。

我有一个值无法通过它的HashRef验证,但是我能想到的每一个测试都使它看起来应该是有效的。

属性(存储)没有传递类型约束,因为:值MyApp::CatalystAuthStore=HASH(0x7fa98fffa590)...的“HashRef”验证失败

转储该值会产生一个有效的hashref:

代码语言:javascript
复制
bless( {
     'config' => {
                   'class' => '+MyApp::CatalystAuthStore',
                   'use_userdata_from_session' => 1
                 }
   }, 'MyApp::CatalystAuthStore' )

当我尝试使用Scalar::Util::Reftype进行自我验证时,它会返回我的值的“散列”。

因此,如果有一段时间,我们可以排除我的代码中的一个问题,并且考虑到这是第一次发生在部署中,那么有什么好的方法来查看Moose的哪一部分在我的构建中不能正常工作呢?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-11-30 23:48:18

HashRef专门查找一个未加祝福的散列,但您的哈希是有福的(一个MyApp::CatalystAuthStore对象)。也许MyApp::CatalystAuthStore会是一种更适合使用的类型?如果不是,您可以很容易地创建一个类型,接受祝福和不祝福的哈希。

代码语言:javascript
复制
subtype 'AnyHashRef'
   => as 'Defined'
   => where { Scalar::Util::reftype($_) eq 'HASH' }
   => inline_as { "( Scalar::Util::reftype($_[1]) eq 'HASH' )" };
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13654574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档