Larry Wall schreef: > Dr.Ruud wrote: >> I would expect >> >> %hash.exists{$key} > > Except $foo.bar{$key} is interpreted as $foo.bar().{$key}. Things > like "exists" and "delete" need to evaluate the key before calling > the method in question, not after.
OK. >> with the shortcut >> >> %hash.:{$key} >> >> to test (at run-time) for existance of the element, and expect >> >> %hash.:exists >> >> to test (at compile time if possible) for the validity of 'exists', >> more like >> >> %hash.can('exists'); >> >> %hash.has('exists'); >> >> %hash.does('exists'); > > Why would you expect colon to do that? I don't see the prior art... I was reading : as TEST (or indeed STATUS, or even STATE), and read the part ":exists" a "the STATUS (or validity) of exists()", which would always be true (or >0) because exists() is in the "hash-core". So "%table.:$key" or "%table.:{$key}" would then be short for "%table.exists{key}" (assuming exists() to be the default TEST/STATUS/STATE-method for hash). -- Affijn, Ruud "Gewoon is een tijger."