> On 18 Jan 2016, at 19:55, Tom Browder <tom.brow...@gmail.com> wrote: > > In creating some new Perl 6 programs I've run across several instances > I'm confused about, to wit: > > Example 1 > --------------- > >> my %h; say 'false' if !%h<a>:exists; > Unexpected named parameter 'exists’ passed
Yeah, this is an unexpected one. However, there is a simple solution: my %h; say 'false' if %h<a>:!exists; In general, :foo is equivalent to foo => True, and :!foo is equivalent to foo => False. > Example 2 > --------------- > >> my %h; say 'false' if not %h<a>:exists; > false > > It looks like '!' doesn't work as I thought it was supposed to. But, > I just discovered that when I use parens, it works. Yes, the ! binds closer, and eats the :exists, and then complains about it. Liz