# New Ticket Created by Jeff Horwitz # Please include the string: [perl #58362] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=58362 >
rakudo cannot write to %*ENV because the underlying Env PMC apparently does not update the environment when using a non-keyed opcode: fail code from pmichaud: $ cat y.pir .sub 'main' :main .local pmc env, foo env = new 'Env' foo = new 'String' foo = 'abc' env['foo'] = foo $P1 = env['foo'] say $P1 foo = 'def' $P1 = env['foo'] say $P1 .end $ ./parrot y.pir abc abc $ the trace output makes the different opcodes more obvious, at least to me: 0 new P2, "Env" P2=PMCNULL 3 new P1, "String" P1=PMCNULL 6 set P1, "abc" P1=String=PMC(0x82141c4 Str:"") 9 set P2["foo"], P1 P2=Env=PMC(0x81fd8f8) P1=String=PMC(0x82141c4 Str:"abc") 13 set P0, P2["foo"] P0=PMCNULL P2=Env=PMC(0x81fd8f8) 17 say P0 P0=String=PMC(0x82141a8 Str:"abc") abc 19 set P1, "def" P1=String=PMC(0x82141c4 Str:"abc") 22 set P0, P2["foo"] P0=String=PMC(0x82141a8 Str:"abc") P2=Env=PMC(0x81fd8f8) 26 say P0 P0=String=PMC(0x821418c Str:"abc") abc 28 end