# New Ticket Created by "Carl Mäsak" # Please include the string: [perl #82790] # in the subject line of all future correspondence about this issue. # <URL: http://rt.perl.org/rt3/Ticket/Display.html?id=82790 >
<masak> there is at least a little code smell inherent in p6 dynamic variables, since these are not namespaced at all. it'd be nice to see a solution for namespacing dynamic variables. <TimToady> dynamic var is a lexical, not a global <TimToady> masak: I don't think dynamic variables are useful enough to warrant the baggage of namespacing <TimToady> dynamic hashes and common prefixes are probably good enough <masak> TimToady: maybe. <masak> TimToady: but I'd be wary every time I used both dynamicals and callbacks. <TimToady> esp if we allow :: in a dynamic name :) <masak> :D <masak> then I'm fine :) <TimToady> we can think about that <TimToady> might also be useful to target the final default to a package other than GLOBAL <TimToady> which makes it slightly less smelly, I suspect <TimToady> std: my $*FOO::BAR = 2; <p6eval> std 625303c: OUTPUT«ok 00:01 121m» <TimToady> heh <masak> rakudo: my $*FOO::BAR = 42; say $*FOO::BAR <p6eval> rakudo 723986: OUTPUT«Cannot modify readonly value in '&infix:<=>' at line 1 in main program body at line 22:/tmp/2PoIAPndlk» * masak submits rakudobug <TimToady> not clear that STD parsed it correctly though <masak> should it error out on FOO:: not being predeclared? <TimToady> there's definitely something wonky in the STD parse of that <TimToady> nevertheless it can probably be made to work someday <masak> TimToady: well, Rakudo parsed it too, since it got to runtime. <TimToady> package globals don't generally care about whether FOO:: exists yet for normal variables <masak> ok. <TimToady> std: $FOO::bar = 42; <p6eval> std 625303c: OUTPUT«ok 00:01 120m» <masak> rakudo: module Foo {}; my $*Foo::bar = 42; say $*Foo::bar [18:06] <p6eval> rakudo 723986: OUTPUT«Cannot modify readonly value [...]