On Thu, 17 May 2001, David Cantrell wrote:

> EINSUFFICIENTLYSPECIFIEDPROBLEM :-)

Probably.  Here's my solution, and I can't see any obvious way of making
it smaller.  Suggestions?

#!/usr/bin/perl
use strict;
use warnings;

use Data::Dumper;

my %scores = ( Adams   => 78,
               Davies  => 35,
               Fowler  => 78,
               Edwards => 84,
               Thomas  => 47,
               );

my %results;

my @x = sort {$scores{$b} <=> $scores{$a}} keys %scores;

my $i = 1;
while (@x)
{
    my $delta = 0;
    my $current;
    do
    {
        my $name = shift @x;
        $current = $scores{$name};
        $results{$name} = $i;
        $delta++;

    } while (@x && $current == $scores{$x[0]});
    $i += $delta;
}

print Dumper \%results;


-- 
 mark fowler, bad at perl at 6pm in the evening.

Reply via email to