http://qs1969.pair.com?node_id=1171226


in reply to variables /interpolations inside PPI::Token::Quote::Double quoted string

The input:

my $foo = $bar; print "hi $foo\n"; print 'hi ', $foo, "\n";

...stored in very-easy-print-interpolation2.pl

Run, thusly:

ppi_dumper very-easy-print-interpolation2.pl

ppi_dumper is in App-PPI-Dumper.

The output:

PPI::Document PPI::Statement::Variable PPI::Token::Word 'my' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$foo' PPI::Token::Whitespace ' ' PPI::Token::Operator '=' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$bar' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement PPI::Token::Word 'print' PPI::Token::Whitespace ' ' PPI::Token::Quote::Double '"hi $foo\n"' PPI::Token::Structure ';' PPI::Token::Whitespace '\n' PPI::Statement PPI::Token::Word 'print' PPI::Token::Whitespace ' ' PPI::Token::Quote::Single ''hi '' PPI::Token::Operator ',' PPI::Token::Whitespace ' ' PPI::Token::Symbol '$foo' PPI::Token::Operator ',' PPI::Token::Whitespace ' ' PPI::Token::Quote::Double '"\n"' PPI::Token::Structure ';'

This demonstrates that PPI does not handle interpolation in a print statement very well, but a print statement with a list does work.

Replies are listed 'Best First'.
Re^2: variables /interpolations inside PPI::Token::Quote::Double quoted string
by Anonymous Monk on Sep 06, 2016 at 06:55 UTC