用given-when 构造switch语句

1. 更少的输入

use 5.010;
given ($dog) {
  when ('Fido')      {}
  when ('Rover')     {}
  when ('Spot')      {}
  default            {} ;

};

2. 智能匹配

use 5.010;

$dog ~~  /$regex/      #dog 能被正则表达式匹配
$dog ~~  %Dogs         #$dog 是%Dogs 中的键值
$dog ~~ @Dogs          #$dog 是@Dogs 中的元素
@Dogs ~~ /$regex/      #@Dogs中至少有一个元素与正则匹配
%Dogs  ~~ /$regex/     #%Dogs 中至少有个一key与正则匹配

 

3.多分在处理

use 5.010;
given ($dog) {
  when ('Fido')   { ...;break}
  when('Rover') {....;break}
  default           {...} ;
};

利用continue 语句,就可以使程序在当前when块运算后进入下一个when继续比较。

 

4.代码组合

可以在when之间自由输入任意代码,哪怕在中途修改主题变量也没问题

use 5.010;

my $dog = 'Spot' ;
given ($dog) {
  say "I am ....." ;
  when  (/o/){  ;coninue}
  say "....";
   when (/t/) {..;coninue}
   $_=tr/p/d/;
  when (/d/) (..;coninue)


};

 

5.对列表进行分支判断

在foreach 循环中我们也能用when,这和在given中相似,只不过它是依次从列表中取测试目标

use 5.010;

foreach (@array) {
  when (/....$/)  {}
  when (//..$)    {}
}

转载于:https://www.cnblogs.com/tjxwg/archive/2013/03/12/2955956.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值