in reply to Re: Re: Thoughts on Exegesis 7
in thread Thoughts on Exegesis 7

Would it be something similar to with in VB or Javascript? While we have that idea in for-aliasing, it certainly would be nice to have that concept a little more elaborated. I could see the benefit as such:
# $object1 has the interface foo # $object2 has the interface bar and baz with ($object1) { with ($object2) { bar; foo(baz); } }
and have it be interpreted as:
$object2->bar; $object1->foo($object2->baz);

Obviously, this is a contrived example, but it could be kinda neat ...

------
We are the carpenters and bricklayers of the Information Age.

Please remember that I'm crufty and crochety. All opinions are purely mine and all code is untested, unless otherwise specified.

Replies are listed 'Best First'.
Re: Re: Re: Re: Thoughts on Exegesis 7
by theorbtwo (Prior) on Mar 01, 2004 at 09:49 UTC

    I think given does this.


    Warning: Unless otherwise stated, code is untested. Do not use without understanding. Code is posted in the hopes it is useful, but without warranty. All copyrights are relinquished into the public domain unless otherwise stated. I am not an angel. I am capable of error, and err on a fairly regular basis. If I made a mistake, please let me know (such as by replying to this node).

      But the inner given would hide the topic of the outer given. There's only one $_ variable...

      Also, Perl 6 does not intuit that foo() should be a method call just because you happen to be in the scope of a class that defines method foo(). (That's a thing I hate about C++, actually.) So if you want to call a method without specifying the object, you have to at least put in the dot:

      .foo() # same as $_.foo()
      If you find yourself wanting to nest interface contexts, it's probably a sign that you should have designed the class with both interfaces in the first place. A class is the natural gathering point of interfaces (or roles, in terms of Perl 6's generalization of interfaces).