Open liosha opened 9 years ago
t/data/05_lexer/subscript.code
$$arr[0]; ${$arr}[0];
Both lines means the same. On the first line PPI interprets '[0] as array subscript (right), but on the second one as anonymous array constructor (wrong). The same with hash derefs.
t/data/05_lexer/subscript.dump
PPI::Document PPI::Statement PPI::Token::Cast '$' PPI::Token::Symbol '$arr' PPI::Structure::Subscript [ ... ] PPI::Statement::Expression PPI::Token::Number '0' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement PPI::Token::Cast '$' PPI::Structure::Block { ... } PPI::Statement PPI::Token::Symbol '$arr' PPI::Structure::Subscript [ ... ] PPI::Statement::Expression PPI::Token::Number '0' PPI::Token::Structure ';' PPI::Token::Whitespace '\n'
$ prove -Ilib t/05_lexer.t t/05_lexer.t .. 1/219 # Failed test 't/data/05_lexer/subscript: Generated dump matches stored dump' # at t/lib/PPI/Test/Run.pm line 73. # Structures begin differing at: # $got->[14] = ' PPI::Structure::Constructor [ ... ]' # $expected->[14] = ' PPI::Structure::Subscript [ ... ]'
t/data/05_lexer/subscript.code
Both lines means the same. On the first line PPI interprets '[0] as array subscript (right), but on the second one as anonymous array constructor (wrong). The same with hash derefs.
t/data/05_lexer/subscript.dump