Jonathan Scott Duff skribis 2004-04-16 15:51 (-0500):
> >     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.
> Except that you've put things in this explanation that shouldn't be
> there IMHO. The %varname<<key>> is a special case, but not of "getting a
> single item from a hash", rather it's a special case of a one element
> list generated from << >> evaluating to the element. So, if you remove
> that bit, it's the same as the two below just with different syntax.

I think %hash<<key key key>> is best explained as %hash{ << key key 
key >> } with implicit curlies, not as an alternative to curlies.

This is where ` as a bareword-quoter would provide a somewhat consistent
interface, as %hash`key would then just be %hash{`key}, but without the
curlies. And :foo<<a>> and :foo`a would be :foo(<<a>>) and :foo(`a)
without the parens.

But I also like to think that // is m// with implicit m, instead of the
other way around.


Juerd

Reply via email to