Quibbles in my last post aside, this one pretty much just worked beautifully:
my $file = "skaters.txt";
my @names;
my %scores;
my $skaters = open ($file);
for (=$skaters) -> $skater
{
my @scores = split ",", $skater;
my $name = shift @scores;
push @names, $name;
my $score = (([+] @scores) - (@scores.min() + @scores.max())) / 5.0;
%scores{$name} = $score;
say "$name => $score";
}
close $skaters;
my @sorted_names = sort { %scores{$^b} <=> %scores{$^a} }, @names;
say "Gold medal: {@sorted_names[0]}, {%scores{@sorted_names[0]}}";
say "Silver medal: {@sorted_names[1]}, {%scores{@sorted_names[1]}}";
say "Bronze medal: {@sorted_names[2]}, {%scores{@sorted_names[2]}}";
I was a little surprised the extra braces were required in the say statements, but it still is pretty darned elegant.