文章目录
前言
本文主要记录一下,perl中的given-when语句。
perl中的given-when语句相当于C语言中的switch-case语句。
- given-when的语法
- continue的应用
16 given-when语句
#=====================================
# given-when语句,相当于C语言中的switch-case
#=====================================
use 5.010;
my $name = $ARGV[0];
if($name =~ /fred/i) { say 'if: Name has fred'}
elsif($name =~ /^Fred/) { say 'if: Name starts with Fred'}
elsif($name eq 'fred') { say 'if: Name equal fred'}
else { say 'if: I dont see fred'}
# 上边的if和下边的given-when等效
given($name){
when(/fred/i) { say 'if: Name has fred'}
when(/^Fred/) { say 'if: Name starts with Fred'}
when('fred') { say 'if: Name equal fred'}
default { say 'if: I dont see fred'}
}
# 加上continue后下边的语句会继续执行,默认是break
given($name){
when(/fred/i) { say 'if: Name has fred'; continue}
when(/^Fred/) { say 'if: Name starts with Fred'; continue}
when('fred') { say 'if: Name equal fred'}
default { say 'if: I dont see fred'}
}
given($ARGV[1]){
when( /^-?\d+$/){ #匹配数字
say 'This is a num!'; continue
}
when($_ > 10){
say 'Num is greater than 10'
}
}