• perl trick


    一、die if以及文件的操作

    #!/usr/bin/perl -w
    use strict;
    
    die "USAGE:
    	perl $0 <><><>
    
    " if @ARGV != 3;
    #$0表示脚本名,@ARGV表示参数个数
    
    open (INPUT1 ,"$ARGV[0]") or die "can not open $ARGV[0]!";
    
    open (QUERY ,"$ARGV[1]") or die "can not open $ARGV[1] !";
    
    open (OUT ,">$ARGV[2]") or die "can not open $ARGV[2]!";
    #注意下标是从0开始,>表示以写入方式打开
    
    my %h;
    
    while(<INPUT1>)
    {
        chomp;
        my @line = split"	";
        $line[0] =~ s/s//g;
        $line[2] =~ s/s//g;
        my $k = $line[0]."	".$line[2];
        $h{$k}=$k;
    }
    
    my $header =readline(QUERY);#读取一行
    print OUT $header;#写入用print
    
    my %header_idx;
    
    chop($header);
    my @headers = split("	", $header);#对变量进行split
    
    #scalar()获取数组长度
    for(my $i=0; $i < scalar(@headers); $i++){
          $headers[$i]=~s/s//g;
          $header_idx{$headers[$i]}=$i;
    }
    

     二、遍历哈希

    while ( my ($key,$value) = each %ENV ) 
    {
            print "$key:$value
    ";
     }
    

     三、时间打印

    my $datestring = localtime();
    print "starting time: $datestring 
    ";
    
    #Fri Oct 19 15:36:21 2018这样的英文结果也许并不理想
    
    sub sub_format_datetime {
            my($sec, $min, $hour, $day, $mon, $year, $wday, $yday, $isdst) = @_;
            $wday = $yday = $isdst = 0;
            sprintf("%4d-%02d-%02d %02d:%02d:%02d", $year+1900, $mon+1, $day, $hour, $min, $sec);
    }
    
    
    #sprintf()函数
    '''
    $result = sprintf("%08d",$number);让$number有8个前导零。 
    
    $rounded = sprintf("%.3f",$number); 
    
    让小数点后有3位数字
    
    '''
    my $start = sub_format_datetime( localtime() );
    print $start;
    print "
    ";
    #2018-10-19 15:36:21变成中文时间
    

      

  • 相关阅读:
    匿名对象、栈空间和堆空间,String的两种实例化方式的比较,"=="和"equals()"的区别
    间接调用父类私有成员方法、通过抽象类可以达到不需要实现接口所有方法的目的
    this关键字、构造快和静态块
    java可变参数的支持和foreach输出
    java-循环结构体
    switch和if else的区别和应用
    作用域对象
    JavaWeb1
    JavaScript 表单编程
    好久不见
  • 原文地址:https://www.cnblogs.com/always-fight/p/9772363.html
Copyright © 2020-2023  润新知