条件
1.if-else
#!/usr/bin/perl -w
use feature qw(say); #打印内容自动换行,不用手动加"\n"
my $var = <STDIN>;
#if
if($var){
say $var;
}
#if-else
if($var){
say $var;
}
else{
say "input is 0";
}
#if-elsif 注意是elsif,不是elif,sv中也是elsif
if($var > 10){
}
elsif($var > 5){
}
else{
}
2.unless
#!/usr/bin/perl -w
1.unless
unless(boolean_expression){
#boolean_expression为假时执行的statement
}
2.unless-else #相当于if(not ...)-else
unless(...){
...
}
else{
...
}
3.unless-elsif-else #类似if,略
3.switch
类似于sv中的case语句,需要安装Switch.pm模块,略,具体参考:https://www.runoob.com/perl/perl-switch-statement.html
4.三元运算
Exp1?Exp2:Exp3,和sv中相同。
循环
1.foreach/for
...
foreach $var (@array){
say $var; #可省略循环变量$var,使用默认的循环变量$_
}
#下面的for循环等同于上面的foreach循环
for(my $index = 0;$index < @array;$index++){
say $array[$index];
}
2.while/until/do-while
until相当于while(not ...);do-while是先执行操作,再判断是否继续循环。
默认循环变量$_
循环控制:
1.continue
可与foreach和while结合使用,在每次循环后、再次判断前执行:
...
while($var){
say $var;
}continue{
$var--; #每次say执行后,while再次判断前执行
}
2.next/last/redo
next:结束本次循环,如果有continue,执行continue,否则直接进行下次循环;相当于sv中的continue。
last:结束循环,相当于sv中的break。
redo:重新从循环体第一行开始执行,continue不再执行。