hmm... this looks really awkward:
my %list_o_num = map {
if(exists $list_o_num{$_})
{ $list_o_num{$_}++ }
else
{ $_ => 1 }
}
@list_o_num;
For one thing, you are using a hash in the same line as you declare it with my... thats bad... I think you are trying
to do something like:
my %list_o_num;
$list_o_num{$_}++ for @list_o_num;
my @true_top_3 = (sort { $b <=> $a } keys %list_o_num)[0..2];
print "T3: ", join(', ',@true_top_3), "\n";
but I can't quite tell.
I would probably write that like so:
#!/usr/bin/perl -wT
use strict;
my @list_o_num = qw(9 9 9 10 9 8 7 9 6);
my %seen;
my @true_top_3 = (sort { $b <=> $a }
grep {!$seen{$_}++}
@list_o_num)[0..2];
print "T3: ", join(', ',@true_top_3), "\n";
-Blake