in reply to Re: How can I find the calling object?
in thread How can I find the calling object?

It doesn't solve the problem. That's what's wrong with it. ;) The original calling object isn't made available to my receiving object.

I'm working with a static package somebody else wrote. When a sub in my package is called, it needs to do something to the calling object. As dakkar pointed out (and you saw) it is possible. =) I think it ought to be easier, but I didn't (nor am I remotely qualified to) design the language I'm using.

I'm wary, though, when I hear somebody say "it can't be done". It's very easy to prove something possible. It's near to impossible to prove that a thing is impossible. I do have a number of other ways to solve the problem, but they're all kludges. I want a better way, and I think it may well exist someplace. If it does, I expect the answer to come from the undocumented depths of the way Perl works, on a much lower level than I currently understand. But I do think it may be out there.
--
Love justice; desire mercy.
  • Comment on Re: Re: How can I find the calling object?

Replies are listed 'Best First'.
Re: Re: Re: How can I find the calling object?
by Joost (Canon) on Nov 18, 2002 at 17:02 UTC
    I would probably rewrite the other package in this case, but if you really can't I would suggest using the caller/DB trick below. It's really nasty and somewhat underdocumented, but it will probably work.

    But in my view it's simple: the problem lies not in your code, it's in the other package. Fix the problem; fix the other package.

    -- Joost downtime n. The period during which a system is error-free and immune from user input.