扫码一下
查看教程更方便
一个 switch
语句允许测试一个变量等于多个值时的情况。每个值称为一个 case
,且被测试的变量会对每个 switch case 进行检查。
switch case 执行是基于 Switch 模块, Switch 模块默认是没有安装的。
打开命令窗口,输入 cpan 命令,然后输入 install Switch 命令:
$ cpan
cpan[1]> install Switch // 安装
cpan[2]> exit // 退出
sudo apt-get install libswitch-perl
语法格式如下所示:
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 "不匹配之前的条件" }
}
以下是 switch 语句的规则:
实例
#!/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
接下来我们看下使用 next 的实例:
实例
#!/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
数字在列表中