Hola.
Lo primero y antes de que se me olvide: nuestro lenguaje se llama "Perl", no "PERL" (no es una sigla sino un nombre propio). También verás por ahí "perl", y en ese caso se refiere al propio programa intérprete.
Luego, en cuanto a tu programa que cuenta el número de veces que aparece cada nombre, a mí sí que me funciona:
Using bash Syntax Highlighting
$
perl programa.pl
Juan López-Rubio Fernández : 5
Pedro Ángel Castillo : 1
Joaquín Ferrero San Pedro : 4
Arturo González Ferrer : 3
Jordi Piqueras Brunet : 4
Guillermo Barturen Briñ
as :
1
Juan J. Merelo :
2Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
En cuanto a la forma de colocar el while(), es idéntica a como lo tienes en el programa, salvo que no necesitas hacer ni un open() ni un close(). Ejemplo:
Using perl Syntax Highlighting
#!/usr/bin/perl
while (<>) {
chomp; # le quitamos el carácter de nueva línea a la línea leída
print "$. $_\n"; # sacamos un número de línea y el nombre leído
}
Coloreado en 0.002 segundos, usando
GeSHi 1.0.8.4
El operador diamante
<> equivale a poner
<STDIN>, que significa "leer un registro desde la entrada estándar". Otra forma de escribirlo es así:
readline() (más información en
perldoc -f readline).
P.D. Usa el marcado de sintaxis Perl para marcar tu código Perl dentro de estos mensajes. Queda más bonito y legible.