먼저이 문제의 기원을 추적하는 데 어려움을 겪고 있기 때문에 얼마나 많은 정보가 포함되어야하는지 잘 모르겠습니다.클래스의 속성을 설정할 수 없음
$genre = Movie::Genre->new({
genreName => 'Drama',
genreID => '1'
});
문제는, 그것은하지 않습니다 :
나는 (몇 가지 다른 것들과 함께)이 같은 클래스의 속성을 설정하려고 서브 루틴 무스 역할을한다. 직후$genre
의 덤프는 여전히 비어 있음을 나타냅니다 :
$genre: bless({
genreID => '1',
genreName => 'Drama'
}, 'Movie::Genre')
: 내 테스트 파일에 동일한 라인을 실행할 때이 덤프 예상대로
$genre: bless({}, 'Movie::Genre')
낯선 여전히, 작동
나는이 두 줄의 코드를 다른 것으로 만들어서 하나는 작동시키고 하나는 실패하게 만드는 것을 찾기 위해 고심하고 있습니다.
어떤 조건으로 인해 첫 번째 예가 실패하고 두 번째 예가 성공할 수 있는지에 대한 아이디어가 있습니까? 필요한 경우 더 많은 컨텍스트를 제공하게되어 기쁩니다. 감사!
감사합니다 - 당신이 옳았습니다. 나는 긴 역할의 사슬을 가지고 있었고, 누가 먼저 전화하고 누가 개편 하는지를 조사한 후에 문제가 해결되었다. – Ryan
여러 개의 역할 (긴 체인)을 작성하는 좋은 방법은'with qw (Role1 Role2 Role3);를 한 번 호출하는 것입니다. 이 방법으로 구성이 정렬되지 않으면 영향을 미치지 않습니다. 그러나 실제로는 이것이 매번 작동하지 않을 수 있으므로 (구현의 특징으로 인해)'with() '를 여러 번 호출하면 순서가 지정된 구성을 만들 수 있습니다. – perigrin