Both CSV and XML are good options.
For good disk access you can use DB_File: you can tie an
hash on disk.
You can use the student's name as key to fast access the record:
$student_hash{$name}=...CSV structure here...
Also you can manage duplicate keys.
So the code to tie is:
use DB_File;
tie %DB_IT, "DB_File", "$filename1", O_CREAT|O_RDWR, 0666 or die "Can'
+t open $filename1: $!\n";
or
use DB_File;
$DB_BTREE->{'flags'}= R_DUP;
tie %D1, "DB_File", "filename2", O_CREAT|O_RDWR, 0666, $DB_BTREE or di
+e "Can't open $filename2: $!\n";
for duplicate keys.
Update: changed CVS in CSV :)