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. -- To UNSUBSCRIBE, email to debian-user-spanish-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org