zoukankan      html  css  js  c++  java
  • perl 控制结构

    if (表达式) {  空格忽略,断行可以不同。
    语句}       if(表达式)
              {
    elsif (表达式) { 语句
    语句}              }
             elsif 和else 部分可以省略。
    .........  注意elsif 关键字
    else{  语句块{} 必须有,但可以为空
                   可以嵌套
    语句}  含义 为真时执行,表达式为执行条件
    
    
    foreach 格式:
    
    foreach $w (列表或数组){语句}
    
    1.()内为数组@a,或列表(1,2,3).
    
    2.$w 可以试新变量,也可以试已使用的变量。在循环结束后变量值恢复
    
    3.每次循环把列表或数组中的值依次赋予$w,直到列表为空。可以不关心数组长度
    
    4.如果在循环体中修改$w的值,则相应的数组元素值也改变。
    
    5.当列表中是常量时,$w的值不能修改
    
    
    
    #!/usr/bin/perl
    print "$a的值在循环后恢复:";
    $a=1;
    print $a;
    foreach $a (2,3,4) {print $a;}  ##循环列表
    print $a;
    
    
    [oracle@jhoa 11]$ cat 5.pl 
    print "
    改变循环变量的值引起数组元素值改变:";
    @a=(1,2,3);
    print @a;
    foreach $c (@a) {$c=4 if $c==2;}
    print @a;
    [oracle@jhoa 11]$ perl 5.pl 
    
    改变循环变量的值引起数组元素值改变:123143[oracle@jhoa 11]$ 
    
    [oracle@jhoa 11]$ cat 6.pl 
    print "
    可以循环访问数组的部分元素:";
    @a=(1,2,3);
    print @a;
    foreach $c (@a[1,2]) {print $c;}
    [oracle@jhoa 11]$ perl 6.pl 
    
    可以循环访问数组的部分元素:12323[oracle@jhoa 11]$
    
    
    循环控制:
    
    last: 退出循环
    
    next:执行下一循环,循环中Next下的语句本地不执行,对于for 要执行变量自增。
    
    redo: 重新执行本次循环,对于for 不执行变量自增。在do语句中无效。
    
    goto:跳转,不能跳转到循环或子程序内,不建议使用。
    
    
    
    标记语句块
    
    标记只能由字母和下划线组成,一般为大写,由:分割。
    
    标记定义:定义在循环语句前或语句前(goto),如
    while,for
    
    跳转到标记: last|next|redo|goto LABEL;
    
    一般用到嵌套循环的内层跳到最外层时,其中last是退出最外层循环,程序继续向下走,不是跳转到最外层再执行。
    
    OUT:while(){
         while(){ ..last OUT;
                 }
    }
    
    [oracle@jhoa 11]$ cat 7.pl 
    print "使用标签:";
    LABEL:for ($i=1;$i<5;$i++){
             for($j=1;$j<5;$j++){
               #print "$j";
           last LABEL if$i==3;
               print "$j";
              }
            }
    print "$i=$i";
    [oracle@jhoa 11]$ perl 7.pl 
    使用标签:12341234$i=3[oracle@jhoa 11]$
    
    
    
    单行条件语句与循环语句
    
    条件语句:语句在前,条件在后。 print $a if $a==0;但是先测试条件再执行语句。
    
    同理;
    unless: print $a unless($a==0);
    
    while : print $a while($a--==0);
    until: print $a until($a--=0);注意循环语句不能丢失控制变量,造成死循环。
    
    用||,&& 的条件语句: $a==0&&print $a;
    
        open(F,'file') || die "can't open";
    
    die 函数:在控制台标准错误输出信息后退出信息后退出程序。
    
    warn: 输出信息后不退出程序,只起警报作用。
    
    $!: 内部变量包含错误代码。
    
    $@ :内部变量包含错误信息。
    
    
    总结:
    
    1.if (表达式){语句}
    elsif (表达式){语句}
    .....
    else{语句}
    
    
    2.单行语句 if(表达式)
    
    
    3.|| or && and形式
    
    ? : 形式
    
    unless(表达式){语句}
    
    单行语句unless(表达式);
    
    
    while,until 循环
    
    while (表达式){语句}
    
    do{语句}while{表达式}
    
    while(表达式){语句}continue{语句}
    
    单行语句 while(表达式)
    
    
    until(表达式){语句}
    
    do{语句}until(表达式)
    
    until(表达式){语句}continue{语句}
    
    单行语句 until(表达式)
    
    

  • 相关阅读:
    函数获取常用路径 SHGetSpecialFolderLocation、SHGetPathFromIDList
    [转载]Delphi线程池(Delphi2009以上版本适用)
    给 System.Zip 增长了个(多文件解压时的)解压进度事务
    sql操蛋的孤独账号。
    不错的几个jq控件
    jquery的跨域访问
    MVC3中输出Html标签的方法
    MVC_HtmlHelper用法大全
    execute sp_executesql 用变量获取返回值
    Asp.Net MVC中的RenderPartial 和 RenderAction
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13352055.html
Copyright © 2011-2022 走看看