{ last unless (my $once = $condition1) and $condition2; do { # ... # ... } while not $once and $condition3; }