Hi all. I'm trying to get quoting interpolation to work, which means I first have to understand it a little better.
In Perl 5, as far as I can see, the delimiter of quoting constructs (whether it's "", '' or qq <delim>) is searched for before the string is parsed. This means that, for example, "%hash{"string value"}" parses as "%hash{" which is a syntax error. Current behaviour in Pugs is to read anything that interpolates until its logical conclusion, so that for example "{"a"}" is 'a', and not a syntax error. I think this behaviour is more useful than the old behaviour when it's not ambiguous. (By the way, this behaviour is my fault, so it's not authoritative in any way) My suggestion is to check for delimiters only when it's ambiguous: Inside a variable name (qq x$varxy -> "$var"y), and at the beginning of every subscript of a scalar, and every subscript after the first one of an array, hash of sub (because in these cases the first subscript is mandatory). By the way, maybe it's not even an issue: Is it possible for the closing delimiter of a string to be an opening bracket or brace? In Perl 5, if a quote is opened by a closing brace it must be closed by the same closing brace, while in current Pugs an opening closing brace is closed by a closing opening brace: Perl5: q]a] Pugs: q]a[ both mean 'a'. If the Perl 5 behaviour is maintained, then there is no chance at all of ever mistaking a subscript for a closing delimiter, which makes the only special case qq x$varxy. Sorry for being long-winded; does this make any sense at all? -- -Roie v2sw6+7CPhw5ln5pr4/6$ck2ma8+9u7/8LSw2l6Fi2e2+8t4TNDSb8/4Aen4+7g5Za22p7/8 [ http://www.hackerkey.com ]