zoukankan      html  css  js  c++  java
  • Perl脚本学习----Perl流程控制语句用法指南

    Perl流程控制语句

    条件选择语句1

    if(条件表达式){
    语句块1;
    }else{
    语句块2;
    }

    条件选择语句2

    unless(判别运算式)
    {
    语句2;
    }else{
    语句1;
    }

    if条件语句嵌套

    if(条件表达式1)
    {
    语句1
    }elsif(条件表达式2){
    语句2
    }elsif(条件表达式3){
    语句3
    }else{
    语句4
    }

    例: 

    #!/usr/bin/Perl-w  

    print "input? ";  

    $name=<STDIN>;  

    chop ($name);  

    if($name eq "bo")  

    {  

    print"my name is $name ";  

    }elsif($name eq "ji"){  

    print"my last name is $name ";  

    }elsif($name eq "liu"){  

    print"my first name is $name ";  

    }else{  

    print"unkonw------!!!!!!!!!! ";  

    }  

    灵活使用Perl

    条件表达式&&语句块

    这的确是个逻辑与操作,若条件表达式为“真”,要根据后面语句块的执行结果才能判断整个逻辑与操作的结果,这样就会执行后面的语句;而当条件表达式为“假”,则整个表达式为“假”,不用考虑
    后面语句块的值。所以为假时的语句块不被执行。

    open(FH,">filename")||die"打开文件出错。";
    这时整个表达式的含义是:当前面的语句执行结果是“真”时,就不执行后面的语句了;当前面的语句执行出错,结果是“假”时,就执行后面的语句。这里die的含义是输出出错信息。

    if语句的简写 

    [root@test-linuxtmp]#catifp.pl  

    #!/usr/bin/Perl-w  

    $i=1;  

    #if($i<10){  

    #  

    #print"$i<10 ";  

    #  

    #}  

    print"$i<10 "if($i<10);  

    Perl流程控制语句之for循环

    for(初始语句,条件判断语句,循环变量步进速度){
    循环体语句

    [root@test-linuxtmp]#catpfor.pl  

    #!/usr/bin/Perl-w  

    for($i=1;$i<10;$i++){  

    print"$i ";  

    }  

    Perl流程控制语句之while/until循环
    while(条件表达式){
    循环体语句

    [root@test-linuxtmp]#catpwhile.pl  

    #!/usr/bin/Perl-w  

    $i=1;  

    while($i<10){  

    print"$i ";  

    $i++;  

    }  

     

    当条件表达式为“假”时,执行循环体语句  

    until(条件表达式){  

    循环体语句  

    }  

    #!/usr/bin/Perl-w  

    $i=0;  

    until($i>10){  

    print"$i ";  

    $i++  

    }  

     

    Perl流程控制语句之do{}while/until循环

    do{

    }while/until(条件表达式);
    do{}while的语意是执行循环体,直到条件表达式为“假”;而do{}until的语意是执行循环体,直到表达条件式为“真”。

    Perl流程控制语句之foreach循环

    foreach标量(标量)
    {
    循环体语句

    [root@test-linuxtmp]#catforeach.pl  

    #!/usr/bin/Perl-w  

    @array=(1,2,3,4,5);  

    foreach$i(@array){  

    print"$i ";  

    }  

    #!/usr/bin/Perl-w#######有一个默认变量$_  

    @array=(1,2,3,4,5);  

    foreach(@array){  

    print;  

    }  

     

    #!/usr/bin/Perl-w  

    @array=(1,2,3,4,5);  

    foreach$_(@array){  

    print$_;  

    }  

     

    循环体控制next和last等完成。 

    [root@test-linuxtmp]#catnext.pl  

    #!/usr/bin/Perl-w  

    @array=("a","b","c","d","e","f");  

    foreach(@array){  

    if($_ ge "c"){  

    last;##跳出循环  

    }  

    for($i=1;$i<7;$i++){  

    if(($i%2)==1){  

    next;##进行下一次循环  

    }  

    print"$_"x"$i";  

    print" ";  

    }  

    }  

    print" Done! ";  

    注:当外层循环变量大于等于“c”时,就跳出外层循环,代码执行完毕:内层循环中,当循环变量是奇数时,就不执行打印操作,而执行下一次循环。这样就是下面的结果。

    [root@test-linuxtmp]#./next.pl
    aa
    aaaa
    aaaaaa
    bb
    bbbb
    bbbbbb
    Done!

  • 相关阅读:
    linux samba 配置
    实例解读 linux 网卡驱动
    Linux操作系统的安全管理设置
    找回Linux/Unix下各系统的密码
    CF441E Valera and Number
    CF1175F The Number of Subpermutations 题解
    CF1553 比赛记录
    P5618 [SDOI2015]道路修建 题解
    CF 1530 比赛记录
    AT2063 [AGC005E] Sugigma: The Showdown 题解
  • 原文地址:https://www.cnblogs.com/xiaopengren/p/3431122.html
Copyright © 2011-2022 走看看