Well, the error for rakudo.parrot is gone:

$ perl6-p -e 'my $i=0; while $i < 3 { LEAVE { last }; say $i++; }'
0

But there is still something wrong with the LEAVE phaser in a while statement. 
First, the above command has a different output on rakudo.moar and rakudo.jvm:

$ perl6-m -e 'my $i=0; while $i < 3 { LEAVE { last }; say $i++; }'
0
1
2

Furthermore it looks like the statement in the LEAVE block isn't executed at 
all (but rakudo.parrot still breaks out of the while statement):

$ perl6-p -e 'my $i=0; while $i < 3 { LEAVE { say "bye!" }; say $i++; }'
0

$ perl6-m -e 'my $i=0; while $i < 3 { LEAVE { say "bye!" }; say $i++; }'
0
1
2

Or even with 'redo':

$ perl6-p -e 'my $i=0; while $i < 3 { LEAVE { redo }; say $i++; }'
0

$ perl6-m -e 'my $i=0; while $i < 3 { LEAVE { redo }; say $i++; }'
0
1
2

Reply via email to