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

Reply via email to