I'm mencoba untuk menggunakan istirahat
pernyataan dalam untuk
loop, tapi karena saya'm juga menggunakan ketat subs di kode Perl saya, saya'm mendapatkan error mengatakan:
Bareword "break" tidak diperbolehkan sementara "ketat subs" di gunakan di ./final.pl line 154.
Apakah ada solusi untuk ini (selain menonaktifkan ketat subs)?
Kode saya diformat sebagai berikut:
for my $entry (@array){
if ($string eq "text"){
break;
}
}
Tambahan data (dalam kasus anda memiliki pertanyaan lebih lanjut):
FOO: {
for my $i ( @listone ){
for my $j ( @listtwo ){
if ( cond( $i,$j ) ){
last FOO; # --->
# |
} # |
} # |
} # |
} # <-------------------------------
Hanya terakhir
akan bekerja di sini:
for my $entry (@array){
if ($string eq "text"){
last;
}
}
Jika anda memiliki nested loop, maka terakhir
akan keluar dari bagian terdalam. Menggunakan label dalam kasus ini:
LBL_SCORE: {
for my $entry1 ( @array1 ){
for my $entry2 ( @array2 ){
if ( $entry1 eq $entry2 ){ # or any condition
last LBL_SCORE;
}
}
}
}
Diberikan terakhir
pernyataan akan membuat compiler untuk keluar dari loop. Yang sama dapat dilakukan dalam jumlah loop, dan label bisa tetap di mana saja.