งบเปลี่ยน Perl
กรณีทดสอบงบเปลี่ยนช่วยให้ตัวแปรเท่ากับมูลค่าหลายแต่ละค่าที่เรียกว่ากรณีและตัวแปรจะมีการทดสอบแต่ละกรณีสวิทช์ที่จะได้รับการตรวจสอบ
สวิทช์สวิทช์กรณีที่ผู้บริหารจะขึ้นอยู่กับโมดูล,ชุดสวิตช์ใช้กรอง:: Util :: โทรและข้อความ:: สมดุลในการดำเนินการทั้งโมดูลจะต้องมีการติดตั้ง
ไวยากรณ์
ไวยากรณ์เป็นดังนี้:
use Switch; switch(argument){ case 1 { print "数字 1" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case /\w+/ { print "正则匹配模式" } case qr/\w+/ { print "正则匹配模式" } case (\%hash) { print "哈希" } case (\&sub) { print "子进程" } else { print "不匹配之前的条件" } }
ต่อไปนี้เป็นคำสั่งกฎของสวิทช์:
- งบเปลี่ยนวงเล็บสามารถนำมาใช้ในรูปแบบของพารามิเตอร์เกลาใด ๆ
ในการสลับคุณสามารถมีจำนวนของงบกรณีใด ๆ แต่ละกรณีจะตามด้วยค่าเปรียบเทียบกับลำไส้ใหญ่
คำสั่งกรณีเกลาแล้วเกลาที่จะเปลี่ยนคำสั่งและกำหนดหรือไม่เหมือนกัน
เมื่อเป็นตัวแปรทดสอบเท่ากับกรณีของเวลาอย่างต่อเนื่องตามคำสั่งกรณีจะถูกดำเนินการจนกว่าจะพบคำสั่งหยุดพัก
งบเปลี่ยนจะมีตัวเลือกอื่นในงบผิวสุดท้ายคำสั่งจะถูกดำเนินการในกรณีที่ไม่ตรงกับกรณีใดๆ
เมื่อกรณีการจับคู่คำสั่งกรณีที่บล็อกรันโค้ดจากงบเปลี่ยนหลังจากรัน
เมื่อกรณีการจับคู่ถ้าเราจำเป็นต้องดำเนินการรันคำสั่งกรณีต่อไปคุณจะต้องเพิ่มคำสั่งต่อไป
แผนภูมิการไหล
ตัวอย่าง
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n" } case "a" { print "字符串 a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
โปรแกรมข้างต้นผลลัพธ์คือ:
数字 10
ต่อไปเรามองไปที่การใช้งานของอินสแตนซ์ต่อไป:
#!/usr/bin/perl use Switch; $var = 10; @array = (10, 20, 30); %hash = ('key1' => 10, 'key2' => 20); switch($var){ case 10 { print "数字 10\n"; next; } # 匹配后继续执行 case "a" { print "string a" } case [1..10,42] { print "数字在列表中" } case (\@array) { print "数字在数组中" } case (\%hash) { print "在哈希中" } else { print "没有匹配的条件" } }
โปรแกรมข้างต้นผลลัพธ์คือ:
数字 10 数字在列表中