Anonymous Monk has asked for the wisdom of the Perl Monks concerning the following question:

Hi Monks, I have a challenging problem here , atleast to me . I have a file contains students information as follow:
GRADE MATH COMPUTER HISTORY GOVERNEMENT A Sue DON Mike TOM B+ Sue
What I am doing is reading the student information with the grade and class and updating that information file. I need to watchout for not inserting information for the same student twice for one subject. I am able to find the grade but not able to instert the entry in the correct location .
my $Info="/home/Info"; print " Enter the GRADE\n"; my $grd = <STDIN>; #Don't forget to get rid of the newline character from the input chomp $GRADE; print " Enter the SUBJECT\n"; my $subj = <STDIN>; #Don't forget to get rid of the newline character from the input chomp $subj; print " Enter the Student Name\n"; my $std = <STDIN>; #Don't forget to get rid of the newline character from the input chomp $std; &update($grd, $subj, $std); sub update { my $grade = $_[0]; my $subject = $_[1]; my $name = $_[2]; #Open the file and read it in: open(FILE, "$Info") || die "couldn't open $Info for reading"; #Each line is stored in an array my @in=<FILE>; close(FILE); #Now open the same file again for output open (FILE, ">$Info") ||die "couldn't open $Info for writing"; #Now print out everything and update: for (@in) { print FILE ; if /^$grade/ # and here where I lose it ,, what to do to match + the rest :( } close(FILE);
Can someone advide please ? thanks much

Replies are listed 'Best First'.
Re: complex regex
by NetWallah (Canon) on Feb 27, 2004 at 06:29 UTC
    This smells like Homework, but since you are asking for guidance - here is some.

    You need to analyze the problem, and come up with a data structure that will allow you to verify no duplicates.

    To simplify the data structure, you could flatten out Courses and grades , and map it to something like this:

    [Math A+] [Math A] [Math B+] ..... [Math F-] Stu1 Stu2 .... Stu3 [Gov A+] ...... ..[Gov F-] Stu5 Stu3 ....
    This maps to one Single-dimensional Array per subject. Of course, there are many ways to do this. Hope this helps.

    "Experience is a wonderful thing. It enables you to recognize a mistake when you make it again."
Re: complex regex
by eyepopslikeamosquito (Archbishop) on Feb 27, 2004 at 05:02 UTC

    Is this homework?

    It looks suspiciously like appending to a file which was posted yesterday. I suggest you start by looking at the responses to that node.