On Sun, Jun 03, 2001 at 11:10:19AM +0900, Jim Freeze wrote:
> On Sun, 3 Jun 2001, Guy N. Hurst wrote:
> > Yikes! I hate "->"  much more than "<...>"
> > And array{i} won't go over well, either, since it has
> > such a different meaning already.
> >
> Yikes is right. :) I still have nightmares about perl's array
> and hash reference operators.
Well I guess no one likes -> :). No one commented on the use of square brackets
but I think its reasonable to assume its not liked either. I was thinking that
we would use () instead of || for block local arguments. Then it was pointed out
that this creates ambiguous code ie

(1..5).each ( ... ).method end

so i was thinking we could use square brackets instead. this wouldn't have the
above problem. But now as I think about it my proposal has a big problem -it's
too much change. So i am going to drop it and go with changing the meaning of
||.
> 
> I would prefer to have the current meaning of ||
> altered to be local to the block only. My reasons
> for this are that:
>   1) I think there are few programs that rely on this quirk
>   2) It is not good programming practice to rely on this quirk.
>      If you did this you deserve to have your code broken :)
>   3) If you need the old effect (ie, export a variable), it
>      is easy to explicitly implement (although a bit ugly):
> 
>      a_
>      5.times {|a| puts a; a_ = a}
>      a = a_
I think I would be in favour of the export proposed earlier instead of this.
That way if a variable is existing you can just use a unique block name and
assign to the outer scope. If it's not and you want it you can just export.
> 
> BTW, I have read several posts asking to see code where
> someone needed to see a value exported. I am still unclear
> on this point. I suppose if you exited early from a block
> that that would create a real need for exporting a value.
> BTW, how do you exit early from a block?
I have looked through the code I have and can't find anything but I can remember
doing this at least once. I wonder if anyone else can show examples??

Sorry for ->,
Chris Moline