• Publicidad

Ejercicio hash

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Ejercicio hash

Notapor sindacore » 2008-05-01 05:06 @254

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 :(

Muchas gracias de antemano

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/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";
}
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
sindacore
Perlero nuevo
Perlero nuevo
 
Mensajes: 4
Registrado: 2008-04-30 14:00 @625

Publicidad

Notapor explorer » 2008-05-01 06:58 @331

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}++; .
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 2 invitados

cron