Если на коленке и без использования всяких модулей, то можно вот так:
use strict;
use warnings;
use utf8;
my $csv = <<'EOF';
ClassA1,mark,chemistry,5
ClassA2,mark,philosofyr,5
ClassA2,julia,physic,5
ClassA1,julia,math,3
ClassA1,mark,philosophy,5
ClassA1,julia,chemistry,4
ClassA2,mark,chemistry,4
ClassA2,julia,literature,2
EOF
my @csv = split "\n", $csv;
my (%sum, %count);
for my $row (@csv) {
my ( $class, $name, undef, $num ) = split ",", $row;
my $key = $class . '-' . $name;
$sum{$key} += $num;
$count{$key} += 1;
}
for my $name_class ( keys %sum ) {
print $name_class, $sum{$name_class}/$count{$name_class}, "\n";
}
Результат:
ClassA1-julia3.5
ClassA2-julia3.5
ClassA2-mark4.5
ClassA1-mark5
Хотя можно все это покрасивее и короче написать.