%scores = (
"wibble<=90" => "A",
...
);
####
$grade = ;
...
foreach $grade (%scores) {
####
foreach my $key (keys %hash) {
...
}
####
foreach my $value (values %hash) {
...
}
####
chomp (my $grade = );
$grade !~ /^\d+$/ and die "Input must be numeric!\n";
my %scores = (
A => sub { return $_[0] <= 90 ? 1 : 0 },
B => sub { return $_[0] <= 80 ? 1 : 0 },
C => sub { return $_[0] <= 70 ? 1 : 0 },
D => sub { return $_[0] <= 60 ? 1 : 0 }, # just a guess, otherwise like 'B'
F => sub { return $_[0] >= 50 ? 1 : 0 }, # really? shouldn't that be '<=' ?
);
my $result;
foreach my $key (qw(D C B A F)) {
if ($scores{$key}->($grade) ) {
$result = $key;
last;
}
}
print $result,$/;
####
chomp (my $grade = );
$grade !~ /^\d+$/ and die "Input must be numeric!\n";
# hash with upper threshold as keys
my %scores = (
90 => 'A',
80 => 'B',
70 => 'C',
60 => 'D',
50 => 'F',
);
my $result;
foreach my $key (sort keys %scores) {
if ($grade <= $key) {
$result = $scores{$key};
last;
}
}
print $result, $/;