Perl6: is there a phaser that runs only when you fall out of a loop?

Viewed 113

Take this sample code:

#!/usr/bin/env perl6

use v6.c;

ROLL:
for 1..10 -> $r {
    given (1..6).roll {
        when 6 {
            say "Roll $r: you win!";
            last ROLL;
        }
        default {
            say "Roll $r: sorry...";
        }
    }
    LAST {
        say "You either won or lost - this runs either way";
    }
}

I'd like to be able to distinguish falling out of the loop from explicitly saying last. Ideally, there'd be a phaser for this, but as far as I can find, there is only LAST which runs in either case.

Is there an elegant way to do this? (Elegant, so without adding a $won variable.)

2 Answers
Related