2012-11-30 2 views
1

저는 (새로운 환경에서 처음으로) 소프트웨어를 배포하고 거의 즉시 벽을 치고 있습니다.Valid Hashref에 대한 유효성 검사 실패

나는 HashRef 검증에 실패한 값을 가지고 있지만, 내가 생각할 수있는 모든 테스트는 그것이 유효해야한다고 생각하게 만든다. 유효성 검사 값의 MyApp와 'HashRef':: CatalystAuthStore = HASH (0x7fa98fffa590) 실패 그 값을 덤프

유효한을 생산 ... : 때문에

속성 (저장소) 유형의 제약 조건을 통과하지 않습니다 -looking hashref :

bless({ 
    'config' => { 
        'class' => '+MyApp::CatalystAuthStore', 
        'use_userdata_from_session' => 1 
       } 
    }, 'MyApp::CatalystAuthStore') 

내가 스칼라 :: 백분율 :: 정보 refType을 사용하여 자기의 유효성을 검사하려고 할 때, 내 가치를 '해시'를 반환합니다.

잠시 동안 코드에 문제가있는 경우이를 배제하고 배포시 처음으로 발생한다고 생각하면 무스의 어떤 부분이 제대로 작동하지 않는지 확인하는 좋은 방법은 무엇입니까? 내 빌드?

감사합니다.

답변

3

HashRef은 특별히 불필요한 해시를 찾지 만 사용자에게는 축복이 있습니다 (MyApp :: CatalystAuthStore 개체). 어쩌면 MyApp::CatalystAuthStore을 사용하는 것이 더 적절한 유형일까요? 그렇지 않다면 축복받은 것과 해방되지 않은 해시를 모두 허용하는 유형을 쉽게 만들 수 있습니다.

subtype 'AnyHashRef' 
    => as 'Defined' 
    => where { Scalar::Util::reftype($_) eq 'HASH' } 
    => inline_as { "(Scalar::Util::reftype($_[1]) eq 'HASH')" }; 
+0

내가 개발하는 동안 내 테스트 환경에서 항상 작동하는 이유를 이해하지 못할 수도 있지만 완전히 맞습니다. – Ryan

관련 문제