use List::Util qw/sum/; while( ) { next if /^$/; my ($first, $last, @grades) = split; my $name_index = "$last,$first"; my $avg_grade = sum(@grades) / scalar(@grades); $students{$name_index}{grades} = \@grades; $students{$name_index}{avg_grade} = $avg_grade; push @averages, $avg_grade; } #### my $i = sprintf("%d", scalar(@averages) / 2 ); #### my $i = int( scalar(@averages)/2 );