> -----Mensaje original----- > De: Rodrigo Gallardo [mailto:rodr...@nul-unu.com] > Enviado el: martes, 03 de febrero de 2009 18:09 > Para: Gorka > CC: debian-user-spanish@lists.debian.org > Asunto: Re: Programa extremadamente lento > > On Tue, Feb 03, 2009 at 05:47:14PM +0100, Gorka wrote: > > Hola. > > > > Tengo un script de perl con este bucle: > > > > for (my $j=0;$j<=$#fichero1;$j++) > > { > > if (@fichero1[$j] eq $valor1) > > { > > $token = 1; > > } > > } > > > > El problema es que fichero1 tiene 32 millones de registros y que, > además, > > tengo que hacer este bucle millones de veces, por lo que he calculado > que me > > tardaría AÑOS en acabar. > > ¿Qué pretendes hacer en ese bucle? ¿Simplemente ver si en $valor está > en @fichero? En tal caso, mejor usa algo como grep (la función en > perl, no el binario en shell). O, si el orden no es muy importante, > guarda todo @fichero en un hash, en lugar de en un arreglo. > > Por otra parte, ¿en última instancia qué resultado estas esperando? A > menos que estés haciendo cómputo científico, es probable que tu > problema no *necesite* hacer tantos bucles. Quizá te convenga > detenerte a pensar un poco y replantear tu algoritmo desde un nivel > más alto, antes de hacer optimización de bajo nivel en los bucles. >
Hola, Rodrigo, ... Como me han recomendado, continúo este hilo como OT bajo el asunto: [OT]Re: Programa extremadamente lento Nos leemos ahí. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org