our @choices;
our %choices;
our @invotes;
+our $defcho;
sub addchoice {
- my $cho = shift @_;
- $choices{$cho} = { @_, Index => (scalar @choices) };
- push @choices, $cho;
+ my $choname = shift @_;
+ my $cho = $choices{$choname} = { @_, Index => (scalar @choices) };
+ push @choices, $choname;
+ return $cho;
}
while (<>) {
next if m/^\s*\#/;
next unless m/\S/;
if (m/^([A-Z]+)\s*\=\s*(\S.*)$/) {
- my ($cho, $desc) = ($1,$2);
- my $smaj;
+ my ($choname, $desc) = ($1,$2);
+ my $cho = addchoice($choname, Desc => $desc);
if ($desc =~ m/\[(\d+):(\d+)\]/) {
- $smaj = [$1,$2];
- }
- addchoice($cho, Desc => $desc, Smaj => $smaj);
+ $cho->{Smaj} = [$1,$2];
+ } elsif ($desc =~ m/\[default\]/) {
+ $defcho = $cho;
+ }
} elsif (m/^V:\s+(\S+)\s+(\S.*)/) {
push @invotes, [ $1, $2 ];
} else {
}
}
-if (!$choices{FD}) {
- addchoice('FD', Desc => "Further Discussion");
+$defcho ||= $choices{FD};
+if (!$defcho) {
+ $defcho = addchoice('FD', Desc => "Further Discussion");
}
-
-our $chofd = $choices{FD};
-
-die "FD has smaj?!" if $chofd->{Smaj};
+my $defi = $defcho->{Index};
+die "FD has smaj?!" if $defcho->{Smaj};
our @vab; # $vab[$ia][$ib] = V(A,B)
}
}
foreach my $ia (0..$#vs) {
- foreach my $ib (0..$#vs) {
+ foreach my $ib ($ia+1..$#vs) {
my $va = $vs[$ia];
my $vb = $vs[$ib];
if ($va < $vb) { $vab[$ia][$ib]++; }
elsif ($vb < $va) { $vab[$ib][$ia]++; }
}
}
- }
+ };
die "voter $voter $@" if $@;
}
-print p %choices;
-print p @vab;
+p %choices;
+p @vab;