We're back to the behaviour from 2011:

$ perl6 -e '$foo:: = 42; say $foo::'
42

$ perl6-m -e 'say $foo::'
(Any)

But I wonder whether this is really correct. The subject states that 'say 
$foo::' should not parse and TimToadys remarks sound likewise:

> <p6eval> std 31559: OUTPUT«ok 00:01 111m␤»
> <TimToady> I didn't expect that to work :)
> <masak> std bug.
> * TimToady bug
> <TimToady> I'm not entirely sure how it parsed...
> <TimToady> oh, morename allows a final :: component, but that's not
> quite what you want here
> <TimToady> std: $defeat-the-name-checker::
> <p6eval> std 31559: OUTPUT«ok 00:01 108m␤»

$ ./viv -e '$foo::'
[...]
└─VAST::statementlist, BEG: 0, END: 7
  ├─VAST::statement, BEG: 0, END: 7
  │ └─VAST::term__S_variable, BEG: 0, END: 6, SYM: variable, _specific: 1
  │   └─VAST::variable, BEG: 0, END: 6
  │     ├─VAST::sigil__S_Dollar, BEG: 0, END: 1, SYM: $, TEXT: $, _specific: 1
  │     └─VAST::desigilname, BEG: 1, END: 6
  │       └─VAST::longname, BEG: 1, END: 6
  │         └─VAST::name, BEG: 1, END: 6
  │           │ └─morename: - !!perl/hash:VAST::morename
  │           │               BEG: 4
  │           │               END: 6
  │           │               EXPR: []
  │           │               TEXT: '::'
  │           │               identifier: []
  │           └─VAST::identifier, BEG: 1, END: 4, TEXT: foo
  └─VAST::eat_terminator, BEG: 7, END: 7, TEXT: , WS: 1

Reply via email to