บางครั้งเราอาจจำเป็นต้องรันโค้ดบล็อกเดียวกันหลายครั้ง โดยปกติ คำสั่งต่างๆ จะถูกดำเนินการตามลำดับ: คำสั่งแรกในฟังก์ชันจะถูกดำเนินการก่อน ตามด้วยคำสั่งที่สอง และอื่นๆ
ภาษาการเขียนโปรแกรมมีโครงสร้างการควบคุมที่หลากหลายสำหรับเส้นทางการดำเนินการที่ซับซ้อนมากขึ้น
คำสั่ง Loop ช่วยให้เราสามารถดำเนินการคำสั่งหรือกลุ่มของคำสั่งได้หลายครั้ง นี่คือผังงานของคำสั่ง loop ในภาษาการเขียนโปรแกรมส่วนใหญ่:

โปรดทราบว่าตัวเลข 0, สตริง '0', "", รายการว่าง () และ undef เป็น เท็จ และค่าอื่นๆ ทั้งหมดเป็น จริง หากใช้ true ก่อนหน้า ! หรือ ไม่ false จะถูกส่งคืน
ภาษา Perl มีประเภทการวนซ้ำดังต่อไปนี้:
| ประเภทห่วง | อธิบาย |
|---|---|
ในขณะที่วนซ้ำ | ดำเนินการคำสั่งหรือกลุ่มของคำสั่งซ้ำๆ เมื่อเงื่อนไขที่กำหนดเป็นจริง มีการทดสอบเงื่อนไขก่อนดำเนินการตัวลูป |
จนกระทั่งวนซ้ำ | ดำเนินการคำสั่งหรือกลุ่มคำสั่งซ้ำๆ จนกว่าเงื่อนไขที่กำหนดจะเป็นจริง มีการทดสอบเงื่อนไขก่อนดำเนินการตัวลูป |
สำหรับวง | รันลำดับของคำสั่งหลายๆ ครั้ง ลดความซับซ้อนของโค้ดที่จัดการตัวแปรลูป |
ห่วง foreach | foreach loop ใช้เพื่อวนซ้ำค่าของรายการหรือตัวแปรคอลเลกชัน |
ทำ...ในขณะที่วนซ้ำ | คล้ายกับคำสั่ง while ยกเว้นว่าจะทดสอบเงื่อนไขที่ส่วนท้ายของตัวลูป |
ลูปซ้อนกัน | คุณสามารถใช้หนึ่งหรือหลายลูปภายใน while, for หรือ do.. While loop |
คำสั่งควบคุมแบบวนซ้ำจะเปลี่ยนลำดับการดำเนินการของโค้ด ซึ่งคุณสามารถบรรลุการข้ามโค้ดได้
Perl ให้คำสั่งควบคุมการวนซ้ำต่อไปนี้:
| คำสั่งควบคุม | อธิบาย |
|---|---|
คำสั่งถัดไป | หยุดดำเนินการคำสั่งโดยเริ่มจากคำสั่งถัดไปของคำสั่งถัดไปไปยังตัวระบุสิ้นสุดของเนื้อหาลูป ถ่ายโอนไปยังการดำเนินการของบล็อกคำสั่ง Continue จากนั้นกลับสู่จุดเริ่มต้นของเนื้อหาลูปเพื่อเริ่มดำเนินการวนรอบถัดไป |
คำสั่งสุดท้าย | ออกจากบล็อกคำสั่งลูป เพื่อสิ้นสุดการวนซ้ำ |
ดำเนินการคำสั่งต่อไป | โดยปกติแล้วบล็อกคำสั่ง Continue จะถูกดำเนินการก่อนที่จะประเมินคำสั่งแบบมีเงื่อนไขอีกครั้ง |
ทำซ้ำคำสั่ง | คำสั่งทำซ้ำจะไปที่บรรทัดแรกของเนื้อหาลูปโดยตรง และเริ่มดำเนินการวนซ้ำนี้ซ้ำๆ คำสั่งหลังจากคำสั่งทำซ้ำจะไม่ถูกดำเนินการอีกต่อไป และบล็อกคำสั่ง Continue จะไม่ถูกดำเนินการอีกต่อไป |
คำสั่งข้ามไป | Perl มีรูปแบบการข้ามไปสามรูปแบบ: got LABLE, goto EXPR และ goto &NAME |
หากเงื่อนไขไม่เป็นเท็จ การวนซ้ำจะกลายเป็นการวนซ้ำไม่สิ้นสุด
for loop สามารถใช้ในความหมายดั้งเดิมเพื่อนำลูปอนันต์ไปใช้
เนื่องจากไม่จำเป็นต้องใช้นิพจน์ทั้งสามที่ประกอบเป็นลูป คุณจึงสามารถเว้นนิพจน์เงื่อนไขบางนิพจน์ให้ว่างไว้เพื่อสร้างลูปไม่สิ้นสุดได้
คุณสามารถกดปุ่ม Ctrl + C เพื่อยุติการวนซ้ำ
เมื่อไม่มีนิพจน์เงื่อนไข จะถือว่านิพจน์นั้นเป็นจริง คุณยังสามารถตั้งค่าเริ่มต้นและนิพจน์ส่วนเพิ่มได้ แต่โดยทั่วไปแล้ว โปรแกรมเมอร์ Perl ต้องการใช้โครงสร้าง for(;;) เพื่อแสดงการวนซ้ำไม่สิ้นสุด