On Tue, 09 May 2017 11:17:23 -0700, b...@abrij.org wrote: > > There are some misbehaviors when a next clause is encountered on what > would be the last iteration of a loop construct. An extra Mu is > injected into the return value for that iteration, and the termination > test may be bypassed. > > skids: m: my $b; (loop ($b = 4; $b; $b--) { next if $b == 1; $_ > }).note > (02:05:08 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «((Any) (Any) (Any) > (Mu) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) > (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) > (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) (Any) > (Any) (Any) (Any) (Any) (Any) (A…» > > m: my $b; (loop ($b = 4; $b > 0; $b--) { next if $b == 1; $b }).note # > version without escaping the termination condition > (02:13:17 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «(4 3 2 (Mu))» > (02:13:25 PM) skids: still have that Mu.
Also seems to affect other loop constructs. skids: Ooh. also affect while. (02:19:21 PM) skids: m: my $b =4; (while ($b--) { next if $b == 0; $b }).note (02:19:22 PM) camelia: rakudo-moar 6bb1b5: OUTPUT: «(3 2 1 (Mu) -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -6…»