#!/usr/pkg/bin/perl
use strict;
#open(DATA) || die "problem opening: $!\n";
## mon day time callsign sent rcvd multi MHz mode pts 
## 8 16 2133 JA2MYA 599TK 599GF GF 1.9 CW 1 
my ($freq, $mode, $date, $time, $mycall, $rsts, $nr, $callsign, $rstr, $exchange);
my ($yy,$mon, $dd, $time, $multi,$pts);
my $dummy;
my %MULTI;
my %QSO;
my $multicount;
my $points = 0;
my @LINES;
while (<>) {
    if ( /^QSO: / ) {
	($dummy, $freq, $mode, $date, $time, $mycall, $rsts, $nr, $callsign, $rstr, $exchange)
	    = split;
	($yy,$mon,$dd) = split '-', $date;
	# $time += 900;
	# $exchange =~ s/P$//;

	$freq /= 1000;
	if ( $MULTI{$exchange} == 0 &&  ! ( $exchange =~ /\?/ )) {
	    $MULTI{$exchange}++;
	    $multi = $exchange;
	    $multicount++;
	}
	else {$multi = ''};
	$pts = 0;
	if ($QSO{$callsign} == 0  && ! ( $exchange =~ /\?/ )) {
	    $QSO{$callsign}++;
	    if ( $callsign =~ /^J[A-S]/i ||
	         $callsign =~ /^7[J-N]/i ||
	         $callsign =~ /^8[JN]/i ) {
		$pts = 1;}
	    else {$pts = 5;}
	}
	else { $pts = 0;}
	$points += $pts;

	my $line = sprintf(" %02d  %02d %04d %-10s %3s%s %3d%2s %3s  %3.1f  CW  %d\n",
	       $mon, $dd, $time, $callsign, $rsts, $nr, $rstr, $exchange, $multi, $freq, $pts);
	push(@LINES, $line);
    }
}
summary();

my $score = $multicount * $points;
my $qso = $#LINES + 1;
##printf ("%5d x %5d  = %10d\n", $multicount, $points, $score);
print "総得点 :", $score,"\n";
printf  "%6s %6s %6s %6s\n", "freq", "qso", "point", "multi";
printf  "%6s %6d %6d %6d\n", "1.8MHz", $qso,  $points, $multicount;
printf  "\n";

printf("%03s %03s %04s %-10s%5s %5s %5s %3s %4s %s\n",
	       qw(mon day time callsign sent rcvd multi MHz mode pts));

    print @LINES;
exit;
## ---- ここから上は、変更する必要はありません   ----
## (*  *) の部分を消して記入して下さい-
sub summary(){
    print <<SUMMARY;
コールサイン: (* かっこ内を消してコールサインを書く* )
コンテスト名: 第 27 KCJ トップバンドコンテスト (* コンテスト名 ...このかっこ内は消す*) 
参加部門名: シングルオペ部門 (* 必要なら修正して下さい *)
氏名： (* *)
連絡先：〒(* *)
運用地：(* *)
Email: (* *)
SUMMARY
}
sub comment(){
    print <<COMMENT;
コメント:
  (* この行を消して、ここに御意見を書いて下さい *)
COMMENT
}
__DATA__
(この行を消して、代りに時刻を UTC -> JST 変換した cabrillo 形式を貼込んで下さい)
__END__


使い方(起動方法)
perl /PATH/TO/kcj-160-head.sjis  2011-KCJ-160.LOG > 2011-KCJ-160.sendig
