1.循环语句
2.条件语句
3.顺序执行语句
表达式的真假值;
表达式不一定是逻辑表达式,但一定要得出真假值;
逻辑表达式,经过逻辑运算或者比较运算得出的;
数学表达式的值为0;
字符串表达式,字符串为空;
列表为空
undef变量未定义
以上这些都为假;
#######################################################
条件语句if
格式:
if (表达式) {
    代码块1
}elsif (表达式) {
    代码块2
}
else{
    代码块3
}
当if判断条件成立执行代码块1,不成立时判断elsif表达式,成立执行代码块2,不成立执行代码块3
注:代码块里即为条件判断后要执行的代码;
     注意elsif关键字,别写错了;
     代码块{}必须要有的,里面可以不写内容;
     意义:条件为真时执行。也就是说表达式为执行条件;

unless (表达式) {
    代码块
}
unless和if条件含义相反,
如何表达式成立时则退出,这和if恰恰相反;
注:这个不常用,一般用for取反就好了,省的还的多记一种语法;

while (表达式) {
    代码块
}
表达式是执行代码块的条件;这里要着重注意,表达式里要有为假的可能,要不代码块会一直循环这样就成了死循环;

还有种形式
do {
    代码块
} while (表达式)
这种是先执行代码块后判断条件;和while不同的是至少要执行一次;

until (表达式) {
    代码块
}
这个和while相反,表达式为假一直执行代码,为真时停止,并退出条件;

do {
    代码块
} until (表达式)
至少先执行一次语句,在做条件判断;

for(表达式1;表达式2;表达式3) {
    代码块
}
  • 表达式1:初始化控制变量或其他变量,只在第一次循环时执行。
  • 表达式2:每次循环时比较,为真时循环;
  • 表达式3:每次执行完循环才执行,改变控制变量的值,一般为自增;
  • 3个表达式可以省略,但是2个;必须保留;for (;;)无限循环;
  • 注:第一,三表达式都可以使用执行多个语句;
  • 例如:
        for($a=<>,$i=1;$i,100;$a=<>,$i++) {
            print $a."\n";
        }


foreach $yuan(列表或数组) {
    代码块
}

  • ()内为数组@chenxi,或列表(1,2,3)
  • $yuan可以是新变量,也可以是已使用的变量。在循环结束后变量值恢复。
  • 每次循环把列表或数组中的值依次赋给$yuan,直到列表为空。可以不必关心数组长度;
  • 如果在循环体中修改$yuan的值,则相应的数组元素值也改变;
  • 当列表中是常量时,$yuan的值不能修改;
  • $yuan和@chenxi可以相同,如$yuan(@yuan);
  • for和foreach可以互换;
foreach的形式
一般形式:foreach $yuan(@yuan) {}
列表形式:foreach $yuan(1,2,3,4) {}
散列形式:foreach $key(keys%h) {}
对数组某个元素操作形式:foreach $yuan(@yuan[1,2,3]) {}

省略$_形式:foreach (@yuan) {},缺省为$_;