Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Ejercicio hash

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico
Mensaje Jue May 01, 2008 4:06 am
sindacore
Perlero Nuevo
Perlero Nuevo
Registrado: 30 Abr 2008
Mensajes: 4
Ejercicio hash Responder citando

Buenas. Pues mire, en el ejercicio que me plantean tengo que leer un fichero de texto y mediante hash hacer que salga por pantalla las palabras alfabéticamente y la frecuencia con la que se repite esa palabra, tengo hecho lo siguiente pero falla por algún sitio Sad

Muchas gracias de antemano

Perl:
#!/usr/bin/perl

while(<>){
       
        @palabras_separadas_por_lineas = split;

        foreach $palabras(@palabras_separadas_por_lineas){
                if( exists $frec{$palabras}){
                        $frec{$palabras} ++;

                }
               
                else {
                        $frec{$palabras} = 1;
                }
        }
}

foreach $palabras_ordenadas( sort %keys){
        print "\n $palabras \t\ $frec{palabras}\n";
}
Mensaje Jue May 01, 2008 5:58 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4222
Ubicación: Valladolid, España
Responder citando

En el último foreach, no debes usar la variable %keys, porque nunca la has usado antes. En su lugar, deberías haber escrito keys %frec.

Dentro de ese mismo foreach, estás usando una variable de iteración ($palabras_ordenadas) pero luego, dentro del bucle la cambias por $palabras. Debes usar siempre la misma.

El if te sobra. Todo. Puedes dejarlo reducido a $frec{$palabra}++; .
Publicar nuevo tema   Responder al tema    Foros de discusión -> Básico Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group