On Friday 15 April 2005 3:27 am, Larry Wall wrote:
> On Fri, Apr 15, 2005 at 03:27:27AM +0300, Roie Marianer wrote:
> : >     %hash<< a $key_b c >>  :key<< a $value_b c >>
> : >     %hash« a $key_b c »    :key« a $value_b c »
> :
> : Just to be certain, these are both equivalent to
> :
> :  @hash{'a', $key_b, 'c'} key => ['a', $value_b, 'c']
> :
> : in Perl 5, right?
>
> Close.  It's actually more like:
>
>     @hash{split " ", "a $key_b c"}    key => [split " ", "a $value_b c"]

I actually knew that, but in my head $key_b and $value_b were single words. 
But according to S02, the interpolation is protected by quotes. That is, if 
$key_b is q0/printf "Hello, world\n" or die"/, that's four words, correct? Or 
is it just if the quotes actually appear in the quoting construct? Basically 
I'm wondering if there's a detailed specification of how <<>> should work.

Several only-slightly-related questions about interpolating:

1. qq x$varx eq $var? (That's how it works in Perl5, anyway)

2. If the delimiter is not a single character (I think this only applies to 
<<>>), does a backslash protect the first character or both? For example, in
 <<some words \>>> or die
Is that three words ['some', 'words', '>'] with the >> ending the construct, 
or is that ['some', 'words', '>>>', 'or', 'die']? (and the rest of the file 
is interpolated and split into words)

3. Are <<>>-style delimiters allowed in other quoting constructs? Is 
q<<Hello>> the string "Hello", or the string "<Hello" followed by the 
greater-than sign? (As you can probably tell, I haven't implemented <<>> yet 
at all.)

My head hurts. :-)

By the way, something tells me perl6-compiler isn't the best place for this 
discussion. Is there a secret group of people that discusses cornercases for 
perl6, and if so could someone tell me on what list they live?
-- 
-Roie
v2sw6+7CPhw5ln5pr4/6$ck2ma8+9u7/8LSw2l6Fi2e2+8t4TNDSb8/4Aen4+7g5Za22p7/8
[ http://www.hackerkey.com ]

Reply via email to