Jue May 01, 2008 4:06 am
|
 |
sindacore
Perlero Nuevo

|
Registrado: 30 Abr 2008
Mensajes: 4
|
|
| Ejercicio hash |
|
|
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
| 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";
} |
|
|
|
|

Jue May 01, 2008 5:58 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4089
Ubicación: Valladolid, España
|
|
|
|
|
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}++; . |
|
Powered by phpBB © 2001, 2005 phpBB Group
|