chiark / gitweb /
canon: initialise $changek0
[ypp-sc-tools.main.git] / yarrg / canon
1 #!/usr/bin/perl -w
2 use strict qw(refs vars);
3 our %s;
4 foreach my $ab (qw(0 1)) {
5     open F, "zcat $ARGV[$ab] |" or die $!;
6     while (<F>) {
7         my @l= split /\t/, $_;
8         next unless length $l[2];
9         $l[3]='1001' if $l[3] eq '>1000';
10         my $k= sprintf "%-31s\t%-23s", $l[1], $l[0];
11         $s{$k}[$ab*2]= $l[2];
12         $s{$k}[$ab*2+1]= $l[3];
13     }
14     close F or die $!;
15 }
16 print "total rows: ", (scalar keys %s), "\n";
17 my $lastk0='';
18 my $changek0=0;
19 foreach my $k (sort keys %s) {
20     my @r= @{ $s{$k} };
21     my $whynot=
22         !defined($r[0]) ? 'ADD' :
23         !defined($r[2]) ? 'DEL' :
24         $r[0] != $r[2] ? 'pri' :
25         $r[1] != $r[3] ? (sprintf "qt %4d",($r[3]-$r[1])) :
26         undef;
27     next unless $whynot;
28     $k =~ m/\t/;
29     if ($` ne $lastk0) { $lastk0=$`; $changek0++; }
30     print $whynot,"\t",$k;
31     print "\t", defined($_) ? $_ : "-" foreach @r;
32     print "\n";
33 }
34 print "changes of k0: $changek0\n";