Bienvenido a los foros de Perl en español, ghiar.
Tienes que abrir y leer el fichero de entrada, línea por línea.
Por cada línea, guardas la información leída, según el primer campo. Ejemplo:
Using perl Syntax Highlighting
if ($linea =~ /^alumno. (.+)$/) {
$nombre = $1;
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
Ahí, estamos mirando si la $linea coincide con el patrón, que quiere decir: buscamos por aquello que comienza (^) por la palabra 'alumno', seguida por una letra cualquiera (.), seguida por un espacio en blanco, y todo lo demás, hasta el final ($), lo capturamos (con los paréntesis), en la variable $1.
Entonces, si la línea coincide con el patrón, en $1 tenemos el nombre del alumno, así que guardamos en una variable temporal.
Si la línea es de grado, sabemos que hemos leído la última parte del alumno, así que aprovechamos y escribimos toda la información del alumno en el fichero de salida, en una sola línea.