my %records = (
12445 => {
name => 'Jack',
scores => [ 45, 10 ],
},
234254 => {
name => 'Jill',
scores => [ 45, 10 ],
},
);
####
#!/usr/bin/env perl
use strict;
use warnings;
use feature 'say';
use List::Util 'sum';
my %records;
while ( my $name = ) {
my ($id) = =~ /(\d+)$/;
my ($score) = =~ /(\d+\.?\d*)$/;
;
chomp( $name, $id, $score );
$records{$id}{name} = $name;
push @{ $records{$id}{scores} }, $score;
}
for ( sort { $a <=> $b } keys %records ) {
my $name = $records{$_}{name};
my @scores = @{ $records{$_}{scores} };
my $mean = sum(@scores) / @scores;
say "$name ($_) has an average score of $mean";
}
__DATA__
Jack
Student ID - 12445
Math Score - 45
Jill
Student ID - 234254
Math Score - 90
Jack
Student ID -12445
Math Score2 - 33
Jill
Student ID - 234254
Math Score2 - 10
####
Jack (12445) has an average score of 39
Jill (234254) has an average score of 50