#!/usr/bin/perl -w use strict; my %votes = ( plane => 5, cbn => 10, wall => 2, pass => 11, shirt => 5, vison => 7, mind => 26, name => 10, tooth => 14, ); my $total; for (values %votes){ $total += $_; } my %pcts; my $diff = 100; foreach my $vote (keys %votes){ my $pct = $votes{$vote}/$total * 100; $diff -= int($pct); $pcts{$vote} = $pct; } my $format = "%-12s" x 3; my @titles = qw(ANSWER VOTES/PCT RAW-PCT); printf("$format\n", @titles); my $new_total = 0; foreach my $answ (sort { ($pcts{$b} - int($pcts{$b})) <=> ($pcts{$a} - int($pcts{$a})) } keys %pcts ){ my $round = int($pcts{$answ}); $round += 1 if $diff-- > 0; printf("$format\n",$answ,"$votes{$answ}/$round%", $pcts{$answ}); $new_total += $round; } print "\n\tNew % Total: $new_total%\n";