Luke Palmer wrote:
When we heard that Larry didn't acutally want $$foo to infinitely dereference, some of us were overjoyed, and others severely disappointed. Both transparent dereferencing (infinite $$foo) and opaque dereferencing (one-level $$foo) have their uses, but they are definitely distinct.
I guess a syntax like the reduce meta operator [$]$ref = whatever(); doesn't work for the $ sigil because it firstly is no operator and secondly unary. So I join the single $-single-steps-party. Might it be applicable to use .() as the dereferencer of scalar variables that derefs to the next none(Ref) type and if that is a Code it dispatches to it as expected? This nicely gives: $x = 3 $y = \$x; $y() = 7; say $x; # prints 7 $y = 23; # detaches from $x say $x; # still prints 7 One detail is that lvalue subs without params must be taken care of. But they'll have a proxy anyway to handle assignment. Another general thing is of course that explicitly constant Refs shall not be applicable as a lhs of assignment. This applies to chains of prefixed $ as well. -- TSa (Thomas Sandlaß)