Como faço para quebrar um loop externo de um loop interno no Perl?

Suponha que eu tenho um pedaço de código Perl como:

foreach my $x (@x) {
 foreach my $y (@z) {
  foreach my $z (@z) {
   if (something()) {
    # I want to break free!
   }
   # do stuff 
  }
  # do stuff
 }
 # do stuff
}

E sesomething() é verdade, eu gostaria de quebrar ('last') todos os loops.

Como eu posso fazer isso? Pensei em duas opções, das quais não gosto: Usar algoGOTO Adicionando uma variável booleana que marcarásomething() for verdade, verifique esse var em cada um dos loops antes de retomar elast() se for verdade.

Alguma sugestão ou pensamento?

Obrigado.

questionAnswers(2)

yourAnswerToTheQuestion