S
Sami
Hi There, 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
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