zoukankan      html  css  js  c++  java
  • Perl 学习笔记-高级控制结构

    1.unless控制结构

      类似于独立的else语句; 要么条件为真, 要么执行语句块内的代码;  unless(<condition>){code...;} 等价于  if(<condition>){}else{code...;}  也就是当条件为假是执行.

    unless (0) {
        print "Hello"; #Hello
    }

    2. until控制结构

      until就是改装过的while, 区别在于它在条件为假是执行代码块.

    $i = 2;$j = 10;
    until($i>$j){
        $i++;
        print "Hello
    ";
    }

    3.条件修饰词

      为了进一步简化表达, 表达式后面可以接着一个用来控制它的修饰词, 例如if修饰词可以用来模拟一个if块. print "Hello Roger" if 0; #无输出  虽然条件写在后面, 但是仍然是先执行, 实际上就是一个if控制块;  所以学习Perl的时候先把语句读完才能理解意义.

      有一些限制: 修饰词两边都只能写单个表达式, 修饰词的左边不能放多条语句, foreach只能用$_变量.

    4.裸块控制结构

      包含在花括号内, 相当于一个只执行一次的伪循环,在为临时词法变量圈定有效范围时很有效. 当某个变量只会在几行代码里用到时, 可以放它们在一个裸块里, 并就近声明变量.

    5.elsif子句 -- 注意不是 elseif

    if(<condition>){
    }elsif(<condition2>){
    }elsif(<condition3>){
    }else{
    }

    6.自增自减

      对Perl中的标量的操作,类似C语言. 也分前后, 效果和C语言一致.

    7.for控制结构

      感觉很像PHP里面的for循环,哈哈!

    for($i=0;$i<10;++$i){
        code...;
    }
    #写成 for(1..10){}也能运行, 但是不是很规范

    8. 3种循环控制

      => last操作

        相当于C中的break; 表示立即结束循环. 用法如:  last; 

      => next操作

        相当于C中的continue; 表示立即结束当前迭代; 用法如:  next if /<pattern>/;  

      => redo操作

        控制返回到本次循环的顶端, 不会经过任何条件测试, 也不会进入下一次循环. 

      可以为块加标签,以便更好地控制,  但是不常见.

    9.三目运算符  ?: 和逻辑操作

      和C语言中的一致.

      "定义否"操作符: // , 由于|| 操作符能提供默认值:undef, 但是没有考虑到特殊情况, 就是已定义的假值, 也可能被意外替换为默认值.  

      有时需要检查一个标量, 如果没有定义则定义, 如果已经定义了就保留原值:  $last_name = $last_name{$someone} // '(No last name)'; 

      || 和 && 可以使用单词书写: or 和 and, 如 open MYFILE, "myfile.txt" or die "Can't open file myfile.txt!"; ,它们效果相同, 但是优先级要低得多, 所以可以不用写很多括号.

  • 相关阅读:
    如何删除PHP数组中的元素,并且索引重排(unset,array_splice)?
    Windows下,MySQL root用户忘记密码解决方案
    MySQL 5.5开启慢查询功能
    MySQL Cluster导入数据表时报错:Got error 708 'No more attribute metadata records (increase MaxNoOfAttributes)' from NDBCLUSTER
    MySQL Cluster在线添加数据节点
    关闭Linux防火墙(iptables) 及 SELinux
    MySQL Cluster 7.3.5 集群配置实例(入门篇)
    磁盘爆满导致MySQL无法启动:Disk is full writing './mysql-bin.~rec~' (Errcode: 28). Waiting for someone to free space...
    cocos2dx 3.1创建工 mac
    跟我一起学extjs5(05--主界面上增加顶部和底部区域)
  • 原文地址:https://www.cnblogs.com/roger9567/p/4536822.html
Copyright © 2011-2022 走看看