In PPI, comments are represented by PPI::Token::Comment objects.
These come in two flavours, line comment and inline comments.
A line comment is a comment that stands on its own line. These comments
hold their own newline and whitespace (both leading and trailing) as part
of the one PPI::Token::Comment object.
An inline comment is a comment that appears after some code, and
continues to the end of the line. This does <B>notB> include whitespace,
and the terminating newlines is considered a separate
This is largely a convenience, simplifying a lot of normal code relating
to the common things people do with comments.
Most commonly, it means when you prune or delete a comment, a line
comment disappears taking the entire line with it, and an inline comment
is removed from the inside of the line, allowing the newline to drop
back onto the end of the code, as you would expect.
It also means you can move comments around in blocks much more easily.
For now, this is a suitably handy way to do things. However, I do reserve
the right to change my mind on this one if it gets dangerously
anachronistic somewhere down the line.