On Fri, Dec 02, 2005 at 09:26:12PM +0100, Brad Bowman wrote:
> How can you match a literal "#" in a rule?
> \# or only \x{23}?
>
> S05 seems clear "# now always introduces a comment",
> and \# is not listed in the escapes.
>
> But then Perl 5 has \# so I assume it's just an omission...
Short answer: \# matches a literal '#'. (So does <'#'>.)
Longer answer: I think "always" may be too strongly worded
in S05, it's not meant as an absolute but rather it's contrasting
perl 6 expressions from perl 5 ones (as part of the "because /x
is default" above).
For example, a few lines earlier S05 says that "^ and $ now
always match the start/end of a string", but the "always" here
is mean to distinguish perl 6 from perl 5, where ^ and $ could
have different meanings depending on the /m option. Similarly,
in perl 5 a '#' could have different meanings depending on the /x
option, but in perl 6 it is always a metacharacter and introduces
a comment. To get a literal # you can escape it with a backslash.
Pm