2012-05-14 2 views
1

Moosedocumentation은 쉽게 객체 thing에 위임 할 수 있다고 말합니다.무스 핸들을 사용하여 오브젝트의 하위 오브젝트를 위임 할 수 있습니까?

has 'thing' => (
    ... 
    handles => { set_foo => [ set => 'foo' ] }, 
); 

# $self->set_foo(...) calls $self->thing->set('foo', ...) 

하지만 난 정말 일에 객체에 위임 할,

has 'thing' => (
    ... 
    handles => { 
     get_month => { datetime ... }, 
    }, 
); 

# $self->get_month calls $self->thing->datetime->month; 

어떻게 내가 이렇게 가야 핸들을 구성해야 할 것입니다 특별히 날짜 객체? thingdatetime_month를 추가

답변

3
has thing => (
    ... 
    handles => { 
     get_month => sub { $_[0]->thing->datetime->month }, 
    }, 
); 

짧은, 당신은 당신의 자신의 위임자를 작성해야합니다.

+1

이 시점에서 이미 메소드를 작성하고 있으며'handles' 선언을 삭제하고'sub get_month'를 수동으로 작성할 수 있습니다. – rafl

+0

@rafl, 당신도 그럴 수 있지만, 나는 그것을 옮기는 것이 낫다는 것에 대해서는 동의하지 않습니다. 특히 위임자로 작성하면 독자에게 정보를 전달합니다. – ikegami

+0

나는 같은 깊이의 깊이를 필요로하지 않는 같은 물체에 다른 핸들을 가지고있다 ... 그래서 그것들은 모두 같은 자리에 놓는다. – xenoterracide

관련 문제