Aaron Sherman wrote:
Squint harder ;-)
If we agree that the first say should print 7, then we must conclude
that either we've changed the value of undef to 7, or we've created a
In my view of refs 7 is printed, indeed. But I've difficulty to understand
what you mean with "the value of undef". Undefinedness to me is the absence
of value. But as Larry argues, actual values that are some kind of soft or
weak exception are very usefull because they just travel along the flow of
control instead of disrupting it. Both exception and undef carry information
of what could not be achieved. I like that view, too. In that sense I'm
speaking of undef values like I speak of an integer value.
I think we agree that references are a level of indirection.
We also agree that variables are names that allow us to get
at---and here I think our views diverge---a box, cell or container
for values. So after resolving a name, we always have one level of
indirection from the cell to the value. To me a referencial value
is just such a thing without an entry in a namespace or symbol table.
And yes, Juerd and I have fundamentally different opinions of what
has got identity. To me only values can be identical. Cells are an
implementation vehicle to handle values.
If we do not agree that the first say prints 7, then we have more
fundamental differences of understanding about how P5 works to figure
out before we can agree on how P6 should work.
I'm not argueing how Perl 5 works. My concern is about defining pratical
and usefull semantics for Perl 6. But as I said, I don't consider myself
authoritative. And I'm sorry, that I said "the right thing" when I meant
"avoid circular refs".
TSa (Thomas Sandla▀)