- foreach my $firstpref (@sorted) {
- $sorted{$firstpref}{Total} += $_->{Weight}
- foreach @{ $sorted{$firstpref}{Votes} };
- printf "%10s %s\n", $firstpref, pr $sorted{$firstpref}{Total};
- $totalvalid += $sorted{$firstpref}{Total};
+ my $countvalid = sub {
+ my ($l, $what) = @_;
+ foreach my $s (@$l) {
+ printf "%-7s %10s %s\n", $what, $s->{Cand}, pr $s->{Total};
+ $totalvalid += $s->{Total};
+ }
+ };
+ $countvalid->(\@sorted, '1stpref');
+ $countvalid->(\@surpluses, 'surplus');
+
+ printf "%7s %10s %s\n", 'TOTAL', '', pr $totalvalid;
+
+ unless ($totalvalid > 0) {
+ printf "No more votes!\n";
+ last;
+ }
+
+ my $placesremain = $places - @elected;
+
+ unless ($placesremain > 0) {
+ printf "Complete.\n";
+ last;