switch语句允许根据值列表测试变量的相等性。每个值称为一个case,并且为每个switch case检查正在打开的变量。
Switch 语法
perl编程语言中switch语句的概要如下所示:-
use Switch;switch(argument) { case 1 { print "number 1" } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (@array) { print "number in list" } case /\w+/{ print "pattern" } case qr/\w+/{ print "pattern" } case (%hash) { print "entry in hash" } case (&sub) { print "arg to subroutine" } else { print "previous case not true" } }
Switch 流程图

Switch 示例
#!/usr/local/bin/perluse Switch;
$var=10; @array=(10, 20, 30); %hash=(key1 => 10, key2 => 20);
switch($var) { case 10 { print "number 100\n" } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (@array) { print "number in list" } case (%hash) { print "entry in hash" } else { print "previous case not true" } }
执行上述代码时,将生成以下输出-
number 100
但是,现在考虑一个下面情况,我们将使用Next将控件转移到下一个匹配的情况,在本示例中是一个列表-
#!/usr/local/bin/perluse Switch;
$var=10; @array=(10, 20, 30); %hash=(key1 => 10, key2 => 20);
switch($var) { case 10 { print "number 100\n"; next; } case "a" { print "string a" } case [1..10,42] { print "number in list" } case (@array) { print "number in list" } case (%hash) { print "entry in hash" } else { print "previous case not true" } }
执行上述代码时,将生成以下输出-
number 100 number in list