On Mon, Jan 12, 2009 at 3:54 PM, Larry Wall <[email protected]> wrote:
> On Mon, Jan 12, 2009 at 01:19:12PM -0800, Jon Lang wrote:
> : As well, isn't there a way to escape a character that would otherwise
> : be interpolated? If the intent were as you suppose, the original
> : could be rewritten as:
> :
> : $ perl6 -e 'my $foo = "foo";say "\{" ~ $foo ~ "}"'
>
> Sure, though in any case I'd probably prefer:
>
> $ perl6 -e 'my $foo = "foo"; say Qs/{$foo}/'
>
> : (Or would you need to escape the closing curly brace as well as the
> : opening one?)
>
> Not unless something outside of it all was attempting to count braces.
> But the P6 parser has sworn off all such activities for P6-derived
> code. Parsing something first as a string and then again as some
> other language is generally looked upon as a Bad Plan these days.
>
> Which is, of course, why "{" is a problem now. Perhaps use of nested
> double quotes deserves a warning.
>
masak++ was right, if you use single quotes it works properly. Here's how
you do it from a bash prompt:
$ ./perl6 -e 'my $foo = '\''foo'\''; say '\''{'\'' ~ $foo ~ '\''}'\'' '
{foo}
Notice the overly redundant single-quotes; in fact, all of those quotes are
single quotes.
-Jason "s1n" Switzer