2010-09-14 13 views
18

Sanırım bir Perl kodu var:Perl'deki bir içten bir dış döngü nasıl kırılır?

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ğer something() doğruysa, tüm döngüleri kırmak isterim ('son').

bunu nasıl yapabilirim? İkisinden hiç hoşlanmadığım iki seçenek düşündüm: GOTO kullanma something() işaretleyecek bir boole değişkeni eklemek doğruysa, her defasında bu varlıları devam etmeden önce kontrol edin ve last() eğer doğruysa.

Herhangi bir öneri veya düşünce?

Teşekkürler.

+7

Perl'de, yorum belirteci '#' değil '//' yazılır. – daxim

cevap

36

kullanın etiket: "Son ETİKET" sözdizimi in the documentation açıklanan

OUTER: 
foreach my $x (@x) { 
foreach my $y (@z) { 
    foreach my $z (@z) { 
    if (something()) { 
    last OUTER; 
    } 
    # do stuff 
    } 
    # do stuff 
} 
# do stuff 
} 
13

.

İlgili konular