in reply to How do I do it without a temporary variable?

I think the most straight forward syntax is probably

$ob2->object->${\$ob3->name}
but the question you should really be asking is "should I do this?" I would say no. You are mixing code and data. That's generally a bad idea. I don't know what the original problem is that you are trying to solve but I think it may be worthwhile to reconsider your design.

-sauoq
"My two cents aren't worth a dime.";

Replies are listed 'Best First'.
Re: Re: How do I do it without a temporary variable?
by xaphod (Monk) on Dec 27, 2002 at 22:26 UTC

    Superb. Thank you sir, you are indeed a star.

    I think it may be worthwhile to reconsider your design.

    Indeed. The problem I'm trying to solve is immaterial, I simply decided it's time to start playing with objects. So I set myself a challenge and I'm implementing it as a collection of objects - learning all the while. But just occasionally I lapse back in to single use script behaviour. I suspect this is a prime example.

    --
    TTFN, FNORD

    xaphod
Re: Re: How do I do it without a temporary variable?
by FamousLongAgo (Friar) on Dec 27, 2002 at 20:47 UTC
    Just to be really perverse ( and firmly in the "My eyes! my eyes! Aaaugh!" department), is there a way to do this using indirect OO syntax? I tried a couple of approaches, the closest I can get is:
    print data { $obj2->object };

      print data { $obj2->object };

      That doesn't even work. The print will break it. print STDOUT data { $ob2->object }; would though.

      I'm not sure how or even whether it is possible to get the ob3->name portion to be used as the method in indirect syntax though. I played with it a bit and the closest I could come to it required an eval. :-) I couldn't get it to work with symbolic refs either. Somehow, I think that's a good thing...

      -sauoq
      "My two cents aren't worth a dime.";