Saya mencoba menggunakan break
pernyataan dalam satu for
lingkaran, tetapi karena saya juga menggunakan subs ketat dalam kode Perl saya, saya mendapatkan pesan kesalahan:
Bareword "break" tidak diizinkan saat "subs ketat" digunakan di ./final.pl line 154.
Apakah ada solusi untuk ini (selain menonaktifkan subs ketat)?
Kode saya diformat sebagai berikut:
for my $entry (@array){
if ($string eq "text"){
break;
}
}
Jawaban:
Oh, aku menemukannya. Anda menggunakan yang terakhir sebagai ganti break
sumber
while
() loop.my @array = ("_", "apple", "orange"); my $thing; while ($thing = shift @array){ last if $thing =~ /[A-Za-z]/; } print($thing); # "apple"
Data tambahan (jika Anda memiliki pertanyaan lain):
sumber
Cukup
last
bekerja di sini:Jika Anda memiliki loop bersarang, maka
last
akan keluar dari loop paling dalam. Gunakan label dalam hal ini:Mengingat
last
pernyataan akan membuat compiler untuk keluar dari kedua loop. Hal yang sama dapat dilakukan pada sejumlah loop, dan label dapat diperbaiki di mana saja.sumber
Pada iterasi besar saya suka menggunakan interupsi. Cukup tekan Ctrl+ Cuntuk keluar:
sumber