in reply to Re: Re: perspective and object-disorientation
in thread perspective and object-disorientation

But caller doesn't do what you want. Try:
sub respond_to_message_from { my $self = shift; my($message, $sender); my $attitude = $self->appropriate_attitude_to($sender); $attitude->respond_to_message_from($self, $message, $sender); }
This avoids monkeying with @ISA, which can only be a good thing. $attitude is an example of the Strategy Pattern. Note that I've not got an @args parameter to this function, instead I'd expect them to be wrapped up in teh $message object (which can be thought of as an example of the Argument Object pattern.

Replies are listed 'Best First'.
Re: Re: Re: Re: perspective and object-disorientation
by Ctrl-z (Friar) on Jan 19, 2003 at 22:58 UTC
    ah!

    I realised the insufficiency of using caller() in that way - but your example is still great. Having the  $self->appropriate_attitude_to($sender) return an object is really...neat.

    Thanks, I'll play around with this