My C<if>/C<unless> typo may have misled you, but the original example pushed only if *none* of them passed the condition.
Ah, sorry, I misunderstood.
So you want:
push @moves, [$i, $j]; for 0..6 -> $t { if abs(@new[$t] - @new[$t+1]) > 3 { pop @moves; last; } }
;-)
Damian