• 控制结构


    unless 条件为假时才执行。与if相反;
    until 条件为假时循环。与while相反;
    while ($n<10){print "\n",($n+=2);} 输出:
    2
    4
    6
    8

    my $d=$m++;## $d得到的是$m之前的值(5),然后$m增加到6
    my $d=++$m;## $m先增加到6,然后再赋值给$d;
    如果只有自加或自减,赋值无顺序。

    裸块:
    用{ }包裹起来,常用语区域变量;
    查找字符出现的次数:
    my @people = qw{ fred barney bamm-bamm wilma dino barney betty pebbles };
    my %seen;
    foreach (@people){
    print "I've seen you somewhere before,$_!\n" if $seen{$_}++; }


    $_操作符,在while循环下,是文件中的每一行,但是如果存在双层嵌套,如下:
    while (<>) {
    foreach (spilt){...}
    }
    这时$_就会被spilt分解为一个一个的单词.

    last,next,redo:
    last 跳出这个循环。
    next 直接跳往循环底部。
    redo 重新开始本次循环,注意,是重新开始,比如这是第二次循环,那么,redo会使第二次循环重新开始,即:这次循环还是第二次。

    标签:
    LINE:while (<>){
    foreach (split) {
    last LINE if /__end__/; ##跳出标签为LINE的循环
    ...
    }
    }


    三目运算符:
    运算表达式1 ? 运算表达式2 : 运算表达式3
    如果1成立,就执行2,1不成立,就执行3
    example:
    my $size =
    ($width < 10) ? "small" :
    ($width < 20) ? "medium" :
    ($width < 50) ? "large" :
    "extra-large"; #default
    # $width=11时,输出的是medium,
    # $width=21时,输出的是large。依次往下。
    赋值也可以:my $name= $arry[$num] ? 'none value':'happy sky'


    逻辑操作符:
    && 逻辑与---必须同时满足两个条件。
    if ($abc>1 && $cde>1) {say "ok"}
    || 逻辑或---至少一个条件为真。
    if ($abc>1 || $cde>1) {say "ok"}
    赋值时也可以使用:
    my $name= $arry[$num] || 'none value'

    定义否操作:
    my $last_name = defined $last_name{$someone} ? $last_name{someone}: '(no last name)'
    等同于:my $last_name = $last_name{$someone} // '(no last name)'
    printf "%s" ,$name;$name如果为空,则会出错,可以使用$name // ''

  • 相关阅读:
    java基础之final
    java基础之finally(转)
    java 中 == 与 equals 的区别
    转载:日志分析
    eclipse配置Git
    Gitlab使用笔记:新建工程
    hadoop,spark的启动及DataNode无法启动的解决方法
    HTTP Status 500
    springmvc4.0配置ajax请求json格式数据
    jq load()方法中加载文件中元素事件绑定失效的问题
  • 原文地址:https://www.cnblogs.com/agostop/p/2328062.html
Copyright © 2020-2023  润新知