• perl next和last


    跳出控制结构:next和last
    
    
    next 和last 操作符运维你在循环中改变程序执行的方向,你可能经常会遇到一些的特殊情况,
    
    碰到这种情况时你希望跳过它,或者像退出循环。
    
    比如当你处理Unix 账号时,你也许希望跳过系统账号(比如root或Ip),
    
    next 操作符允许你将跳至本地循环的结束,
    
    开始下一个循环。
    
    
    而last 操作符允许你跳至整个循环的结束,如果循环条件表达式为假时发生的情况一样。
    
    
    
    next 跳过本地循环,回到循环顶端:
    Vsftp:/data01/mysqllog/binlog# cat a3.pl 
    my @users=qw/root a1 a2 a3 b1 b2 b3 lp c1 c2 c3/;
     foreach $user (@users){
       if ($user eq "root" or $user eq "lp") {next;};
       print "$user is $user
    ";
       }
    Vsftp:/data01/mysqllog/binlog# perl a3.pl 
    $user is a1
    $user is a2
    $user is a3
    $user is b1
    $user is b2
    $user is b3
    $user is c1
    $user is c2
    $user is c3
    
    
    last 退出循环:
    
    Vsftp:/data01/mysqllog/binlog# cat a3.pl 
    my @users=qw/ a1 a2 a3 b1 root b2 b3 lp c1 c2 c3/;
     foreach $user (@users){
       if ($user eq "root" or $user eq "lp") {last;};
       print "$user is $user
    ";
       }
    Vsftp:/data01/mysqllog/binlog# perl a3.pl 
    $user is a1
    $user is a2
    $user is a3
    $user is b1
    
    
    
    例子:next 跳过本次循环
    
    Vsftp:/data01/mysqllog/binlog# cat t2.pl 
    my $str='AAWHEREBBCC';
     if ($str =~ s/WHERE/SET/)
       {print "$str---1 is $str
    "}
    elsif ($str=~ s/SET/SCAN/)
       {print "$str---2 is $str
    ";};
    
    Vsftp:/data01/mysqllog/binlog# perl t2.pl 
    $str---1 is AASETBBCC
    
    
    
    

  • 相关阅读:
    常用Git代码托管服务分享
    .NET中操作IPicture、IPictureDisp
    Git学习笔记与IntelliJ IDEA整合
    螺旋队列问题
    杂题3道
    .NET 配置文件简单使用
    C++之Effective STL
    不容易理解的 lock 和 merge
    状态模式
    观察者模式
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13349970.html
Copyright © 2020-2023  润新知