• perl switch 和case语句


    use Net::SMTP;
       use HTTP::Date qw(time2iso str2time time2iso time2isoz);
       my $CurrTime = time2iso(time());
       my $dis_mainpublish='中均资本';
    my $menu= <<EOF;
                    	DATE:$CurrTime
    	--------------------------------------------------
    	                $dis_mainpublish
    	--------------------------------------------------
    	****** 1) "清空发布目录" *******
    	****** 2) "获得SQL更新目录" *******
    	****** 3) "更新后同步SVN" *******
    	****** 4) "退出系统"   *******
    EOF
    
    undef @arr1;
    undef @arr2;
    my $red="e[1;31m";
    my $green="e[1;32m";
    my $yellow="e[1;33m";
    my $normal="e[0m";
    print $menu;
    print  "please choose [1-2-3-4]:
    ";
    chomp (my $val=<STDIN>);
     use Switch;
            switch ($val) {
                 case 1 {
    			 print "hints->$red请在svn更新后,在执行2操作$normal
    ";
    		    if   ( -e "C:\update") {system("rd /s/q  C:\update") };
    
    		    unless  ( -e "C:\update"){system("mkdir   C:\update") }
    		    
    	     }
    		     
    
                case 2         
    {
    #$dirname = "C:\a1";
    
    $dirname="E:\svn chkout\Database2.0\update_sql\";
    
    opendir ( DIR, $dirname ) || die "Error in opening dir $dirname
    ";
    while( ($filename = readdir(DIR))){
    
        
    
    	 push @arr1,$filename."
    ";
    }
    closedir(DIR);
    
    sort @arr1;
    print @arr1;
    
    ########################################################################
    $dirname = "C:\update_sql";
    
    opendir ( DIR, $dirname ) || die "Error in opening dir $dirname
    ";
    while( ($filename = readdir(DIR))){
    
        
    
    	 push @arr2,$filename."
    ";
    }
    closedir(DIR);
    sort @arr2;
    print @arr2;
    
    
    
    @arr2 = grep {$count{$_} == 1 } grep {++$count{$_}} (@arr1, @arr2);
    print "--------增量信息------------
    ";
    print "@arr2
    ";
    use File::Copy::Recursive qw(dircopy);
    foreach  (@arr2) {
    	print "$_ is $_
    ";
    	chop $_;
     
    my $source_dir="E:\svn chkout\Database2.0\update_sql\$_";
    my $target_dir="C:\update\$_";
     
    my $copy_ret=dircopy($source_dir,$target_dir) or die $!;
    }
    
    		
    
    }
    
    
                case 3          {system("C:\rsync.bat"); }
                else            { exit; }
            }
    

  • 相关阅读:
    用gdb调试python多线程代码-记一次死锁的发现
    使用docker部署standalone cinder
    Linux上open-iscsi 的安装,配置和使用
    Windows上Ruby开发环境的配置
    在Pypi上发布自己的Python包
    docker X509 证书错误的终极解决办法
    oslo_config中的DuplicateOptError坑
    删除emacs临时文件
    xfce4快捷键设置
    设置emacs启动窗口的两种方法
  • 原文地址:https://www.cnblogs.com/hzcya1995/p/13351142.html
Copyright © 2020-2023  润新知