On Sun, 08 Jan 2017 05:11:03 -0800, [email protected] wrote:
> With rakudo commit 3c52aa096c Seq got it's own join method. For some
> reason that changed the behaviour of 'redo' in 'grep'
Also, next/redo in grep die on rakudo-j when using the new join method:
$ ./perl6-j -e 'say (1..4).grep({next if $_ == 3; $_}).join("|")'
next without loop construct
$ $ ./perl6-j -e 'my $retries = 0; say (1..5).grep({if $_ == 3 {$retries++;
redo unless $retries == 10}; $_}).join("|"); say "looked $retries times for
element 3"'
redo without loop construct
Please note, that the evaluations work as expected when using perl instead of
join:
$ ./perl6-j -e 'say (1..4).grep({next if $_ == 3; $_}).perl'
(1, 2, 4).Seq
$ ./perl6-j -e 'my $retries = 0; say (1..5).grep({if $_ == 3 {$retries++; redo
unless $retries == 10}; $_}).perl; say "looked $retries times for element 3"'
(1, 2, 3, 4, 5).Seq
looked 10 times for element 3