Matthew Walton skribis 2004-04-14 21:23 (+0100): > >%foo<<$bar>> doesn't quite do the same as %foo{$bar}. > That's one method, really - <<>> being like {' '}, and really just > carrying on the very familiar idea of different kinds of quotes. Like ' > and ".
The <<>> thing works as if there is an implicit {} around it: <<>> is an alias for qw. <<>> doesn't interpolate. Its insides are string literals separated by whitespace. "«foo»" is 13 key presses, "<<foo>>" is 9 key presses, "{'foo'}" is also 9, "`foo" is only 4. (using vim's ^K and counting keys, not characters. That means shift and ctrl DO count) > The ` idea is completely different. Fortunately so. > Also, ditching `` quotes strikes me as a fairly dreadful idea. Because you're used to them. You're also used to many other things that change when you go from Perl 5 to Perl 6. If you dislike when symbols get to mean different things, reading about Perl 6 must be a terrible experience for you. > Yes, I could use qx// instead, but I could also use qq// instead of > "". If it were up to me, qx would also be removed from the language and only readpipe would be left. > Ultimately, ` looks like an opening quote character, and so people will > expect it to behave like one. I think that violates the principle of > least surprise. Least surprise is important for constructs that aren't used continuously. Whatever is used throughout people's source code, *defines* what people expect and is therefore after seeing it for the first time no longer a surprise. Some people say {} looks like a code block, and that so people will expect it to behave like one. However, Perl 6 also uses it for hash reference constructing, hash subscripting, alternative delimiters, rule blocks, and perhaps even other things. Perl 5 and PHP coders will expect . to be concatenating, -> to be for calling methods. What people expect because they are used to other programming languages does not matter at all. The language should be a consistent universe within itself. If THAT it is not, you are violating the principle of least surprise. Believe me, any non-Perl-6 coder will be surprised when seeing Perl 6 in action. And that is a good thing. Juerd