Brent 'Dax' Royal-Gordon skribis 2004-04-16 13:17 (-0700): > Clever definition of the colon operator, or creation of a > bareword-quoting operator, would allow you to use "barewords" anywhere > you wanted to.
Defining ` to be a bareword quoting operator would be only one step away from what I suggested initially: 1. %hash`key 2. %array`5 3. :key`value 4. say `hello; This would make it like <<>> now, but allowing only one bareword, and only if it is simple (identifier-ish). Oh, and much easier to read and type :) I like the idea of making a bareword quoting operator! (But only 1 and 2 really matter to me. 1 more than 2.) > To get an item out of a hash, you can write %varname{"key"}. > You can also write %varname<<key>> if there aren't any spaces in > the key. Finally, if the key doesn't have any characters in it > except for letters, numbers and underscores, you can write > %varname`key. That's not a great way to teach a langage, and for a reference manual, I think separation into three paragraphs will make things much clearer. Or a table, like in perlcheat :) Basically, if ` is made a generic bareword quoter, <<>> is its plural form. That makes it easier to explain. > I'm going to throw in one more argument at this point. It's based on a > game you all played as children: Which One Of These Doesn't Belong? > > &stuff(1) > @stuff[1] > %stuff{1} > %stuff«1» > %stuff`1 Hm... print if not $foo; if (not $foo) { print } print unless $foo; unless ($foo) { print } $foo or print; And there are many more examples in Perl. I personally like having two ways to write exactly the same thing. If the two ways are very different and one is because of that much easier than the other, I like having the alternative even more. Juerd