Aaron Sherman writes: > Larry Wall wrote: > > leave :from(Loop) :labelÂLINEÂ <== 1,2,3; > > [...] > > leave <== :foo:bar:baz(1) if $leaving; > > I know it's probably just me, but This section seems to suddenly rely on > a lot more knowledge of the current state of Perl 6 syntax than I have. > Can someone walk me through these two examples?
Sure. leave :from(Loop) :labelÂLINEÂ <== 1,2,3; Is the same as: leave('from' => Loop, 'label' => 'LINE', 1, 2, 3); # +$from +$label [EMAIL PROTECTED] The :foo(Bar) syntax is just another way to write 'foo' => Bar. That actually goes for any :foo[bar] for any bracketing construct []. See Exegesis 7 for the first of the explanations of those. I haven't seen :foo:bar:baz(x) before, but I'd assume that it's the same as :foo :bar :baz(x), which means 'foo' => 1, 'bar' => 1, 'baz' => x . > What's a C<:from(Loop)>, for example, and how is C<:foo:bar:baz(1)> > (what looks like a set of properties to me) related to pairing? Wouldn't > that be: > > leave <== 'a'=>'x', 'b'=>'y', 'c'=>'z' if $leaving That would also work. They're semantically equivalent. Luke