Benjamin Goldberg <[EMAIL PROTECTED]> wrote: >> (PMCs have reference semantics[1])
I should have started with [1]: new P1, .PerlHash # new P3, .PerlString # set P3, "yyy\n" # set P1["a"], P3 set P0, P1["a"] print P0 set P0, "xxx\n" set P2, P1["a"] print P2 end When the hash entry exists (3 comments enabled), there is a different behavior compared to the non existing case. "set"ting (assigning) the returned P0 changes the aggregate member or not. > If you'd done: > assign P0, "xxx\n" set P0, "xx" and assign P0, "xx" are the same. As already outlined, one of these opcodes is obsolete. "set" does assign for I,N,S registers. > Instead of set, then yes. However, "set Px, Py" merely stores Py into > the register Px, without touching the PMC that was in it. There is not set P, P in above code. So I assume, that the returned PerlUndef should be put into the aggregate, if there was none before access. leo