perl写的测试结果比较

刚刚学的perl,就写了一个半自动比较测试结果的程序。之所以是半自动,就是把两个程序的测试输出相减,然后用眼看。

以后再写个更智能的。而且这个通用性也不好。

不过哪本书上说的是写这种脚本如果太追求完美,花时间太长也不合算,是不?

上代码:

 

#!/usr/bin/perl

use strict;
#print @ARGV;
my $file1=shift @ARGV;
my $file2=shift @ARGV;

if(!open LOG1,"<$file1"){
    die "Bad file arg./n";
}
if(!open LOG2,"<$file2"){
    die "Bad file arg./n";
}
my @values1;
my @values2;
my @diffs;
foreach(<LOG1>){
    s/[^,-/.?/s+/d+/d*]//g;
    my @items = ( split //s+|,/,$_ );
    foreach(@items){
        s/--/-/g;
        if(//d+/){
            @values1 = (@values1,$_);
        }
    }
}
#foreach (@values1){
#    print "$_/n";
#}

foreach(<LOG2>){
    s/[^,-/.?/s+/d+/d*]//g;
    my @items = ( split //s+|,/,$_ );
    foreach(@items){
        s/--/-/g;
        if(//d+/){
            @values2 = (@values2,$_);
        }
    }
}
#foreach (@values2){
#    print "$_/n";
#}
foreach(@values1){
    push(@diffs,$_-(shift @values2));
}
close LOG1;
close LOG2;
#foreach(@diffs){
#    print "$_/n";
#}
foreach(@diffs){
    if($_ eq 0){
        $_ = 'yes';
    }
}
open LOG1,"<$file1";
my @orig=<LOG1>;
#foreach(@orig){
#    print "$_/n";
#}
foreach(@orig){
    s/-?/d+/.?/d*/<replaceflag>/g;
}
#print @orig;
my $diffvar=shift @diffs;
foreach(@orig){
#    print "orig   $_/n";
    while(s/<replaceflag>/$diffvar/){
        $diffvar=shift @diffs;
#        print "change to   $_/n";
    }
}
my $index=1;
foreach(@orig){
    s/<watch>//;
    s/(Head data)/$1 $index/;
    if(/avg_final/) {
        $index=$index+1;
    }
}
print @orig;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值