#!/usr/local/bin/perl require "/w/class.01/cs/cs131/cs131ta/risc/grades/column_names"; $column=8; open (IN, "backups/midterm-1.tab") or die "Can't open midterm-1.tab :$!\n"; @in=; close IN; &readgrades; foreach $line (@in) { #not using tabs as if cut and paste transfer tabs become spaces ($sid, $score) = $line =~ m:(\d{9})\s+\w+,\s+\w+.*?\s+(\d+\.?\d*):; if ($sid==0) { ($sid)= $line =~ m:(\d{9})\s+:; $score=0; } #print "sid=$sid, sc=$score, $line"; $scores{sprintf("%09d",$sid)}=$score; } foreach $student (@grades) { ($sid)= $student=~ m:(\d{9}):; if (exists $scores{$sid}) { $val=$scores{$sid}; chomp $student; @sgrades=split (/,/, $student, -1); if ($sgrades[$column] >0) {#already have grade print "$sid already had $sgrades[$column], now its $val\n"; } $sgrades[$column]=$val; $student=join (",", @sgrades); $student .="\n"; delete $scores{$sid}; } else {push @nogrades, "$sid";} } print "Students with nogrades: @nogrades\n"; foreach $sid (sort keys %scores) {print "$sid not found\n";} #&writegrades; open (GRADES, ">$home/grades/2grades.csv"); print GRADES @grades; close GRADES;