From explorer en joaquinferrero.com Thu Jan 3 10:13:37 2008 From: explorer en joaquinferrero.com (Joaquin Ferrero) Date: Thu, 03 Jan 2008 19:13:37 +0100 Subject: [Madrid-pm] 6 Sock Message-ID: <1199384018.4126.12.camel@dhcppc69> Buenas... A la noticia de hace unos días de las primeras tentativas de compilación de Perl6 (), ahora me encuentro con otra sorpresa. Sí, ya sé que en CPAN ya hay mucha información y módulos sobre Perl6, pero es que esta es la primera vez que veo código de Perl6 en un módulo de CPAN que no tiene relación directa con el desarrollo o sintaxis de Perl6: http://search.cpan.org/src/GUGOD/JavaScript-Writer-0.1.0/lib6/JavaScript/Writer.pm Viendo el resto de código, se ve que está escrito para pugs, pero de por sí, ya es sorprendente ver a gente contribuyendo con código Perl6. No te das cuenta de que el futuro llega hasta que éste te aplasta. -- JF^D JoaquinFerrero.com Linux User #109802 From pancho en pancho.name Fri Jan 4 13:16:37 2008 From: pancho en pancho.name (Pancho Horrillo) Date: Fri, 4 Jan 2008 22:16:37 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?Est=E1n_locos=2C_estos_Romanos=2E=2E?= =?iso-8859-1?q?=2E?= Message-ID: <20080104211637.GA27429@pancho.name> Mi sancta esposita me ha hecho notar: http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html Como dicen en mi pueblo, «te cagas through the bragas». Un saludote! pancho. -- Pancho Horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli From bugs en dervishd.net Sat Jan 5 01:59:18 2008 From: bugs en dervishd.net (DervishD) Date: Sat, 5 Jan 2008 10:59:18 +0100 Subject: [Madrid-pm] =?utf-8?b?RXN0w6FuIGxvY29zLCBlc3RvcyBSb21hbm9zLi4u?= In-Reply-To: <20080104211637.GA27429@pancho.name> References: <20080104211637.GA27429@pancho.name> Message-ID: <20080105095918.GB6267@DervishD> Hola Pancho, feliz año nuevo :) * Pancho Horrillo dixit: > Mi sancta esposita me ha hecho notar: > > http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html > Como dicen en mi pueblo, «te cagas through the bragas». O como dice Forges, gensanta... Está fatal de lo suyo este Conway XDDDD Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From pancho en pancho.name Sat Jan 5 02:14:04 2008 From: pancho en pancho.name (Pancho Horrillo) Date: Sat, 5 Jan 2008 11:14:04 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?Est=E1n_locos=2C_estos_Romanos=2E=2E?= =?iso-8859-1?q?=2E?= In-Reply-To: <20080105095918.GB6267@DervishD> References: <20080104211637.GA27429@pancho.name> <20080105095918.GB6267@DervishD> Message-ID: <20080105101404.GA8624@pancho.name> On Sat, Jan 05, 2008 at 10:59:18AM +0100, DervishD wrote: > Hola Pancho, feliz año nuevo :) > > * Pancho Horrillo dixit: > > Mi sancta esposita me ha hecho notar: > > > > http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html > > Como dicen en mi pueblo, «te cagas through the bragas». > > O como dice Forges, gensanta... Está fatal de lo suyo este Conway XDDDD > Fatal. Esperemos que no mejore pronto... :-D ¿También fan de Forges? Yo tengo la «Historia de España», que leí cuando era chaval... La pelotilla interdigital cuasifósil me caló hondo... Muy divertido. Un saludote! pancho. -- Pancho Horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli From bugs en dervishd.net Sat Jan 5 04:36:11 2008 From: bugs en dervishd.net (DervishD) Date: Sat, 5 Jan 2008 13:36:11 +0100 Subject: [Madrid-pm] =?utf-8?b?RXN0w6FuIGxvY29zLCBlc3RvcyBSb21hbm9zLi4u?= In-Reply-To: <20080105101404.GA8624@pancho.name> References: <20080104211637.GA27429@pancho.name> <20080105095918.GB6267@DervishD> <20080105101404.GA8624@pancho.name> Message-ID: <20080105123611.GD6267@DervishD> Hola Pancho :) * Pancho Horrillo dixit: > On Sat, Jan 05, 2008 at 10:59:18AM +0100, DervishD wrote: > > * Pancho Horrillo dixit: > > > Mi sancta esposita me ha hecho notar: > > > > > > http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html > > > Como dicen en mi pueblo, «te cagas through the bragas». > > > > O como dice Forges, gensanta... Está fatal de lo suyo este Conway XDDDD > > > Fatal. Esperemos que no mejore pronto... :-D XDDDDD > ¿También fan de Forges? En tiempos coleccionaba las viñetas "online" y algunas acabaron también en la pared, en el hall of fame XDD > Yo tengo la «Historia de España», que leí cuando era chaval... La > pelotilla interdigital cuasifósil me caló hondo... Muy divertido. Ya te digo XDD Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From diego en kuperman.com.ar Mon Jan 7 16:46:15 2008 From: diego en kuperman.com.ar (Diego Kuperman) Date: Tue, 08 Jan 2008 01:46:15 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?Est=E1n_locos=2C_estos_Romanos=2E=2E?= =?iso-8859-1?q?=2E?= In-Reply-To: <20080105101404.GA8624@pancho.name> References: <20080104211637.GA27429@pancho.name> <20080105095918.GB6267@DervishD> <20080105101404.GA8624@pancho.name> Message-ID: <4782C7D7.3060200@kuperman.com.ar> Hola, feliz año para todas y todos! Pancho Horrillo wrote: > On Sat, Jan 05, 2008 at 10:59:18AM +0100, DervishD wrote: >> Hola Pancho, feliz año nuevo :) >> >> * Pancho Horrillo dixit: >>> Mi sancta esposita me ha hecho notar: >>> >>> http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html >>> Como dicen en mi pueblo, «te cagas through the bragas». >> O como dice Forges, gensanta... Está fatal de lo suyo este Conway XDDDD >> > Fatal. Esperemos que no mejore pronto... :-D > Tranquilo, Perligata es de hace muuuucho tiempo. En la ultima YAPC ha dado una presentacion divertidisima llamada "Anisocial perl" de la que lamentablemente no recuerdo tanto. Pero una de las ideas que presento *e implemento!* fue Positronic::Variables, unas varialbles que tienen el valor antes de de que se lo asignes :) La charla tambien trataba de quantum mechanics y todo junto Quantum::Positronic pero esto apenas si lo recuerdo de nombre... menuda flipada! Today I saw quantum superpositions mixed with special relativity in a small (less than 200 lines) Perl module. Positronic variables go back in time, yay! Damian Conway rules. Un abrazo! Diego From diego en kuperman.com.ar Mon Jan 7 16:48:52 2008 From: diego en kuperman.com.ar (Diego Kuperman) Date: Tue, 08 Jan 2008 01:48:52 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?Est=E1n_locos=2C_estos_Romanos=2E=2E?= =?iso-8859-1?q?=2E?= In-Reply-To: <4782C7D7.3060200@kuperman.com.ar> References: <20080104211637.GA27429@pancho.name> <20080105095918.GB6267@DervishD> <20080105101404.GA8624@pancho.name> <4782C7D7.3060200@kuperman.com.ar> Message-ID: <4782C874.2000604@kuperman.com.ar> Perdon, lo mande sin querer. Faltan unos enlaces que luego os paso :-p Abrazo! Diego Kuperman wrote: > Hola, feliz año para todas y todos! > > Pancho Horrillo wrote: >> On Sat, Jan 05, 2008 at 10:59:18AM +0100, DervishD wrote: >>> Hola Pancho, feliz año nuevo :) >>> >>> * Pancho Horrillo dixit: >>>> Mi sancta esposita me ha hecho notar: >>>> >>>> http://www.csse.monash.edu.au/~damian/papers/HTML/Perligata.html >>>> Como dicen en mi pueblo, «te cagas through the bragas». >>> O como dice Forges, gensanta... Está fatal de lo suyo este Conway XDDDD >>> >> Fatal. Esperemos que no mejore pronto... :-D >> > Tranquilo, Perligata es de hace muuuucho tiempo. En la ultima YAPC ha > dado una presentacion divertidisima llamada "Anisocial perl" de la que > lamentablemente no recuerdo tanto. Pero una de las ideas que presento *e > implemento!* fue Positronic::Variables, unas varialbles que tienen el > valor antes de de que se lo asignes :) > La charla tambien trataba de quantum mechanics y todo junto > Quantum::Positronic pero esto apenas si lo recuerdo de nombre... menuda > flipada! > > Today I saw quantum superpositions mixed with special relativity in a > small (less than 200 lines) Perl module. Positronic variables go back in > time, yay! Damian Conway rules. > > Un abrazo! > Diego > _______________________________________________ > Madrid-pm mailing list > Madrid-pm at pm.org > http://mail.pm.org/mailman/listinfo/madrid-pm From sfandino en yahoo.com Wed Jan 16 04:24:46 2008 From: sfandino en yahoo.com (Salvador Fandino) Date: Wed, 16 Jan 2008 04:24:46 -0800 (PST) Subject: [Madrid-pm] =?iso-8859-1?q?Fw=3A_=5Bbcn-pm=5D_Otra_invitaci=F3n?= Message-ID: <36120.75504.qm@web52705.mail.re2.yahoo.com> ----- Forwarded Message ---- > From: Bruno > To: Barcelona Perl Mongers > Sent: Wednesday, January 16, 2008 1:12:43 PM > Subject: [bcn-pm] Otra invitación > > Hola Mongers! > > http://use.perl.org/article.pl?sid=08/01/14/2033204 > > Ya he me ofrecido como un anfitrion en Barcelona, pero podemos > aprovechar todos :) > > Alias es un alias de Adam Kennedy: http://search.cpan.org/~adamk/ > > Saludos! > _______________________________________________ > llista dels Barcelona-pm > Barcelona-pm en pm.org > http://mail.pm.org/mailman/listinfo/barcelona-pm > BCN Perl Mongers: http://barcelona.pm.org > ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From pancho en pancho.name Sun Jan 20 03:24:51 2008 From: pancho en pancho.name (Pancho Horrillo) Date: Sun, 20 Jan 2008 12:24:51 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?OFFTOPIC=3A_cr=E1neo_de_un_T-rex_en_ti?= =?iso-8859-1?q?enda_de_f=F3siles_de_Madrid?= In-Reply-To: <20080120111744.GA5844@pancho.name> References: <20080120111744.GA5844@pancho.name> Message-ID: <20080120112451.GA5923@pancho.name> Perdón por la errata (craneo -> cráneo). Saludetes, pancho. -- pancho horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli From pancho en pancho.name Sun Jan 20 03:17:45 2008 From: pancho en pancho.name (Pancho Horrillo) Date: Sun, 20 Jan 2008 12:17:45 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?OFFTOPIC=3A_craneo_de_un_T-rex_en_tien?= =?iso-8859-1?q?da_de_f=F3siles_de_Madrid?= Message-ID: <20080120111744.GA5844@pancho.name> Ya sé que lo nuestro son los camellos, pero por si alguno tiene curiosidad, en la tienda llamada «Geoda», local sito en: calle General Díaz Porlier, 19 Goya Madrid lucen un hermoso cráneo de tyrannosaurus rex. Me lo encontré el otro día por casualidad, y me dejó impactao. No apto para cardíacos! :-P Un saludote, mongers. pancho. -- pancho horrillo To be conscious that you are ignorant is a great step to knowledge. Benjamin Disraeli From preiddy en gmail.com Fri Jan 25 22:59:33 2008 From: preiddy en gmail.com (PEGG) Date: Sat, 26 Jan 2008 07:59:33 +0100 Subject: [Madrid-pm] una de hash Message-ID: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> Hol@, es mi primera incursión en la lista, aunque estoy inscrito desde hace ya un tiempo. Estoy tratando de analizar un fichero de texto que comienza con dos caracteres en mayúsculas seguido de un espacio, es la etiqueta del campo. Tengo que identificar cada etiqueta y contar cuantas veces aparece, hasta aquí no hay ningún problema. Mi problema comienza cuando lo imprimo, es necesario imprimirlo en la posición en que aparece. Por ejemplo RI IP CN FS OR quiero que imprima como está arriba y no IP = 286895 CN = 55 OR = 37 FS = 172915 RI = 18073 ni ordenado de mayor a menor y viceversa. Alguien sabe si es posible???? Esto es lo que hice while (<>) { @campos=split(/ /,$_); $todo{"$campos[0]"}++; } foreach my $campo (sort {$todo{$a} <=> $todo{$b}} keys %todo) { print "$campo = $todo{$campo}\n"; } De antemano gracias!! ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: http://mail.pm.org/pipermail/madrid-pm/attachments/20080126/1b454a04/attachment.html From bugs en dervishd.net Sat Jan 26 01:13:56 2008 From: bugs en dervishd.net (DervishD) Date: Sat, 26 Jan 2008 10:13:56 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> References: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> Message-ID: <20080126091356.GN24647@DervishD> Hola ¿PEGG? ;) * PEGG dixit: > Tengo que identificar cada etiqueta y contar > cuantas veces aparece, hasta aquí no hay ningún problema. Mi problema > comienza cuando lo imprimo, es necesario imprimirlo en la posición en que > aparece. Por ejemplo > RI > IP > CN > FS > OR > > quiero que imprima como está arriba y no > IP = 286895 > CN = 55 > OR = 37 > FS = 172915 > RI = 18073 > > ni ordenado de mayor a menor y viceversa. > Alguien sabe si es posible???? Claro que es posible. No te pongo el código que es muy temprano para ser sábado y la voy a cagar, pero te digo cómo hacerlo. Crea un array para almacenar el orden de las etiquetas tal y como aparecen. Cuando veas una etiqueta, si YA EXISTE en la HASH, la procesas como ya lo haces ahora, sumando uno al número de veces que la has visto. Lo importante va ahora: si la etiqueta NO EXISTE en la HASH, haces "push" de ella en tu array. Al final, en el array, las etiquetas están ordenadas según van a apareciendo en el fichero de texto, y gracias a la colaboración de tu tabla hash, son apariciones únicas. > Esto es lo que hice > while (<>) > { > @campos=split(/ /,$_); > $todo{"$campos[0]"}++; > } Aquí te haría falta un simple "if" para saber si la etiqueta existe o no en la tabla hash (ojo, ANTES del incremento), y hacer el push al array. > foreach my $campo (sort {$todo{$a} <=> $todo{$b}} keys %todo) > { > print "$campo = $todo{$campo}\n"; > } Y esto lo cambias por algo como: # Ya, ya sé que los nombres de variable dan grima. # Es sábado y es temprano, bastante que pongo nombres XD foreach my $etiqueta (@orden_de_etiquetas) { print "$etiqueta = $todo{$etiqueta}\n"; } Como tu array y tu hash se han creado de forma sincronizada, no tienes que comprobar nada. Si una etiqueta aparece en el fichero original, estará en su posición adecuada en "@orden_de_etiquetas", y su valor en %todo existirá. Como, además, el array está ordenado por "slot" y tú has ido añadiendo las etiquetas con "push", están ya en el orden adecuado, según aparecen en el fichero. Espero que te sirva. Sólo tienes que escribir el "if". Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From sfandino en yahoo.com Sat Jan 26 01:38:37 2008 From: sfandino en yahoo.com (Salvador Fandino) Date: Sat, 26 Jan 2008 01:38:37 -0800 (PST) Subject: [Madrid-pm] una de hash Message-ID: <977036.25005.qm@web52701.mail.re2.yahoo.com> ----- Original Message ---- > From: DervishD > To: Lista de correo de Madrid Perl Mongers > Sent: Saturday, January 26, 2008 10:13:56 AM > Subject: Re: [Madrid-pm] una de hash > > Hola ¿PEGG? ;) > > * PEGG dixit: > > Tengo que identificar cada etiqueta y contar > > cuantas veces aparece, hasta aquí no hay ningún problema. > Mi > problema > > comienza cuando lo imprimo, es necesario imprimirlo en la > posición > en que > > aparece. Por ejemplo > > RI > > IP > > CN > > FS > > OR > > > > quiero que imprima como está arriba y no > > IP = 286895 > > CN = 55 > > OR = 37 > > FS = 172915 > > RI = 18073 > > > > ni ordenado de mayor a menor y viceversa. > > Alguien sabe si es posible???? > > Claro que es posible. No te pongo el código que es muy temprano > para > ser > sábado y la voy a cagar, pero te digo cómo hacerlo. > > Crea un array para almacenar el orden de las etiquetas tal y como > aparecen. Cuando veas una etiqueta, si YA EXISTE en la HASH, > la > procesas > como ya lo haces ahora, sumando uno al número de veces que la > has > visto. otra forma es guardar en un hash el numero de linea de la primera ocurrencia de cada codigo: while (<>) { my @campos=split(/ /,$_); $todo{$campos[0]}++; $orden{$campos[0]} ||= $. } foreach (sort { $orden{$a} <=> $orden{$b} } keys %orden) { print "$_: $todo{$_}\n"; } - Salvador ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ From bugs en dervishd.net Sat Jan 26 01:54:42 2008 From: bugs en dervishd.net (DervishD) Date: Sat, 26 Jan 2008 10:54:42 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <977036.25005.qm@web52701.mail.re2.yahoo.com> References: <977036.25005.qm@web52701.mail.re2.yahoo.com> Message-ID: <20080126095442.GA26207@DervishD> Hola Salvador :) * Salvador Fandino dixit: > otra forma es guardar en un hash el numero de linea de la primera ocurrencia de cada codigo: > > while (<>) { > my @campos=split(/ /,$_); > $todo{$campos[0]}++; > $orden{$campos[0]} ||= $. > } > > foreach (sort { $orden{$a} <=> $orden{$b} } keys %orden) { > print "$_: $todo{$_}\n"; > } Ya sabes, en Perl siempre "hay más de una forma de hacerlo" ;))) A mí me gusta más lo del array para no tener que hacer una ordenación al final, en teoría debería ser más rápido. Pero vamos, que en cantidades normales de datos no debería haber mucha diferencia. Raúl Núñez de Arenas Coronado -- Linux Registered User 88736 | http://www.dervishd.net It's my PC and I'll cry if I want to... RAmen! We are waiting for 13 Feb 2009 23:31:30 +0000 ... From brunorc en gmail.com Sat Jan 26 02:34:59 2008 From: brunorc en gmail.com (Bruno) Date: Sat, 26 Jan 2008 11:34:59 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <20080126095442.GA26207@DervishD> References: <977036.25005.qm@web52701.mail.re2.yahoo.com> <20080126095442.GA26207@DervishD> Message-ID: <982340880801260234i6b0b1006lbebfef3ec301d31d@mail.gmail.com> Hola Sin sortear: #!/usr/bin/perl use strict; use warnings; my %counter; my @orderby; while (<>) { my ($field, undef) = split(/ /, $_, 2); push @orderby, $field unless $counter{$field}; $counter{$field}++; } print "$_ = $counter{$_}\n" foreach @orderby; $alu[2], Bruno From diego en kuperman.com.ar Sat Jan 26 02:42:12 2008 From: diego en kuperman.com.ar (Diego Kuperman) Date: Sat, 26 Jan 2008 11:42:12 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> References: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> Message-ID: <479B0E84.1020109@kuperman.com.ar> Ala!, que actividad mañanera de sabado! :) PEGG wrote: > Hol@, es mi primera incursión en la lista, aunque estoy inscrito desde > hace ya un tiempo. Bienvenid@ pues ;) > Estoy tratando de analizar un fichero de texto que comienza con dos > caracteres en mayúsculas seguido de un espacio, es la etiqueta del > campo. Tengo que identificar cada etiqueta y contar > cuantas veces aparece, hasta aquí no hay ningún problema. Mi problema > comienza cuando lo imprimo, es necesario imprimirlo en la posición en > que aparece. Por ejemplo > RI > IP > CN > FS > OR > > quiero que imprima como está arriba y no > IP = 286895 > CN = 55 > OR = 37 > FS = 172915 > RI = 18073 > > ni ordenado de mayor a menor y viceversa. > Alguien sabe si es posible???? Yo creo que lo hubiera implementado ala salva (fue lo primero que pense recien levantado) :) Pero quizas quieres "complicarla" un poco mas y hacerlo elegantemente usando algo como: http://search.cpan.org/~gsar/Tie-IxHash-1.21/lib/Tie/IxHash.pm http://search.cpan.org/~kwilliams/Tie-LLHash-1.003/LLHash.pm Abrazo! Diego From explorer en joaquinferrero.com Sat Jan 26 07:30:13 2008 From: explorer en joaquinferrero.com (Joaquin Ferrero) Date: Sat, 26 Jan 2008 16:30:13 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> References: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> Message-ID: <1201361413.3830.26.camel@portatil.aprosi.net> El sáb, 26-01-2008 a las 07:59 +0100, PEGG escribió: > Hol@, es mi primera incursión en la lista, aunque estoy inscrito desde > hace ya un tiempo. Yo también daré mi solución, claro, jejeje... Estoy suponiendo que son solo esas las etiquetas que aparecen y que el orden de salida es el indicado. Entonces una posible solución es ------------------------8<--------------------- #!/usr/bin/perl -l @etiquetas = qw[ RI IP CN FS OR ]; $etiquetas{(split)[0]}[0]++ while <>; print "$_ = $etiquetas{$_}[0]" for @etiquetas; ------------------------8<--------------------- pero claro, está muy resumido para una persona que empieza. Además, usa dos variables (un @ y un %) para guardar toda la información. Es demasiado gasto en recursos ;-) Un poco más sencillo, aquí: ------------------------8<--------------------- #!/usr/bin/perl %etiquetas = ( RI => [ 1, 0 ], IP => [ 2, 0 ], CN => [ 3, 0 ], FS => [ 4, 0 ], OR => [ 5, 0 ], ); while (<>) { @campos = split; $etiquetas{$campos[0]}->[1]++; } foreach ( sort { $etiquetas{$a}->[0] <=> $etiquetas{$b}->[0] } keys %etiquetas ) { print "$_ = $etiquetas{$_}->[1]\n"; } ------------------------8<--------------------- split queda reducido a lo mínimo, pues lo que tiene que dividir se ajusta a su funcionamiento por defecto. En el mismo hash %etiquetas almacenamos tanto el orden de aparición como el número de veces que aparece en el fichero de entrada. En la lectura del while vamos incrementando el segundo componente del array asociado a cada clave. Y en el foreach ordenamos la salida de las claves del hash por el valor del primer componente. Y seguro que hay otras veinte formas distintas... -- Joaquin Ferrero From preiddy en gmail.com Sat Jan 26 08:39:27 2008 From: preiddy en gmail.com (PEGG) Date: Sat, 26 Jan 2008 17:39:27 +0100 Subject: [Madrid-pm] una de hash In-Reply-To: <1201361413.3830.26.camel@portatil.aprosi.net> References: <1ab0da440801252259j66d78251m1eb472e02f7313ae@mail.gmail.com> <1201361413.3830.26.camel@portatil.aprosi.net> Message-ID: <1ab0da440801260839w65bd8d34v38c06f64a606abb9@mail.gmail.com> Gracias a todos por sus respuestas. La verdad es que desde hace tiempo le estaba dando la vuelta de como hacerlo, me llegan diariamente cientos de ficheros provenientes de diversas bases de datos, pero que en general suelen tener como etiquetas dos letras, y se me hace necesario saber las etiquetas y el orden para ponerlas en otro script que las incorpora a una BD, script que (por cierto y es por quien llegue a esta lista) fue creado gracias a la infinita ayuda de Joaquin (explorer). Ese script tiene dos pequeños inconvenientes, el primero que es el que comente antes, hay que darles en el orden de aparición de las etiquetas para que pueda extraer el valor y el segundo si dentro del mismo registro se encuentra la etiqueta dos o mas veces no hace nada. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: http://mail.pm.org/pipermail/madrid-pm/attachments/20080126/7063809a/attachment-0001.html From preiddy en gmail.com Thu Jan 31 10:53:36 2008 From: preiddy en gmail.com (PEGG) Date: Thu, 31 Jan 2008 19:53:36 +0100 Subject: [Madrid-pm] =?iso-8859-1?q?=BFcual_es_el_mejor_camino=3A_sql_o_pe?= =?iso-8859-1?q?rl=3F?= Message-ID: <1ab0da440801311053t107d9293gf5ad8a303ac39dfe@mail.gmail.com> Hola, tengo un pequeño problema y no se como resolverlo de la mejor manera. Si por sql directamente o con un script de perl. Tengo una tabla en mysql que tiene un id que puede aparecer una o mas veces, y una dirección asociada. ejemplo: ISI:000088317500003 LIP LISBON, LISBON, PORTUGAL. ISI:000088317500003 OTRA DIFERENTE, SPAIN. ISI:000222193200001 BRADLEY UNIV, PEORIA, IL 61625 USA. ISI:000240793800012 CIC BIOGUNE, BIZKAIA, SPAIN Ahora bien, se requiere que por cada id se sepa si hay mas de uno. Si hay mas de uno saber si tienen o no spain. En el caso de los ejemplo anteriores la tercera y la cuarta dirección tienen el id una sola vez. La primera y la segunda se repite el id, y uno tiene spain. El resultado final seria algo como esto: ISI:000088317500003 LIP LISBON, LISBON, PORTUGAL. CON_COLAB INT ISI:000088317500003 OTRA DIFERENTE, SPAIN. CON_COLAB INT ISI:000222193200001 BRADLEY UNIV, PEORIA, IL 61625 USA. SIN_COLAB INT ISI:000240793800012 CIC BIOGUNE, BIZKAIA, SPAIN CON_COLAB NAC ISI:000240793800012 OTRA DIFERENTE, SPAIN. CON_COLAB NAC ISI:999240769852324 CIC BIOGUNE, BIZKAIA, SPAIN SIN_COLAB NAC Para llegar a esa solución ideal, creo que el procedimiento seria: 1. Identificar si el id esta una o mas veces 2. Si esta una vez ver si es nacional (spain) o internacional 2.1 si es nacional imprime o agrega a la tabla: SIN_COLAB - NAC 2.2 si es internacional imprime o agrega a la tabla: SIN_COLAB - INT 3. Si está mas de una vez 3.1 si todas las direcciones son spain imprime o agrega a la tabla: CON_COLAB - NAC 3.2 si una o mas son diferentes a spain imprime o agrega a la tabla: CON_COLAB - INT Se que en mysql se puede lograr haciendo varias consultas anidadas y usando sentencias como el CASE, por lo que el servidor estará (o eso creo) procesando constantemente cuando se ejecute la consulta para ver los datos. Con perl se puede crear una tabla nueva y meter el resultado y cuando se agreguen nuevos registros ejecutarlo nuevamente. Lo que no se es que para poder ver el id con todos los registros asociados tendría que crear un array con todas las direcciones y luego ir recorriendo ese array para ver si cumple o no los patrones. El problema es que estoy hablando de una tabla que tiene mas de 5 millones de direcciones. ¿Alguna idea? Agradezco sus comentarios de antemano, quizas me estoy ahogando en un vaso de agua y no me he dado cuenta. ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: http://mail.pm.org/pipermail/madrid-pm/attachments/20080131/c4edc35a/attachment.html From sfandino en yahoo.com Thu Jan 31 13:48:38 2008 From: sfandino en yahoo.com (Salvador Fandino) Date: Thu, 31 Jan 2008 13:48:38 -0800 (PST) Subject: [Madrid-pm] =?iso-8859-1?q?=BFcual_es_el_mejor_camino=3A_sql_o_pe?= =?iso-8859-1?q?rl=3F?= Message-ID: <773888.1495.qm@web52701.mail.re2.yahoo.com> Hola > Se que en mysql se puede lograr haciendo varias consultas anidadas y usando sentencias como el CASE, por lo que el servidor estará (o eso creo) procesando constantemente cuando se ejecute la > consulta para ver los datos. > Con perl se puede crear una tabla nueva y meter el resultado y cuando se agreguen nuevos registros ejecutarlo nuevamente. Lo que no se es que para poder ver el id con todos los registros > asociados tendría que crear un array con todas las direcciones y luego ir recorriendo ese array para ver si cumple o no los patrones. El problema es que estoy hablando de una tabla que tiene mas > de 5 millones de direcciones. > ¿Alguna idea? Agradezco sus comentarios de antemano, quizas me estoy ahogando en un vaso de agua y no me he dado cuenta. No nos has comentado si esto lo vas a hacer una vez o cada vez que un usuario visite una pagina web, o si la informacion es estatica o por el contratio cambia constantemente y habria que mantener las tableas actualizadas que son las cuestiones que realmente importan a la hora de decidir que procedimiento es el mejor. Si lo que quieres es minimizar tu trabajo, yo lo que haria seria pedirle a la base de datos que me devolviese toda la tabla ordenada por id, y luego la procesaria secuencialmente en perl. Como los registros con el mismo id vendrian uno detras de otro casi no habria que mantener informacion de estado en el script. osea, que no necesitariamos cargar toda la informacion a la vez en el proceso perl. De todas formas, hoy en dia, 5M de registros no es demasiado, y puedes procesarlo en memoria si tienes un poco de cuidado. Si estas en el caso contrario y tienes que dar un buen rendimiento o mantener la informacion actualizada constantemente, te diria que tirases por SQL, pero empezando por dise~nar un buen esquema para la base de datos y normalizar adecuadamente la informacion que por lo que nos has ense~nado no esta muy claro que la tengas asi. - Salva ____________________________________________________________________________________ Be a better friend, newshound, and know-it-all with Yahoo! Mobile. Try it now. http://mobile.yahoo.com/;_ylt=Ahu06i62sR8HDtDypao8Wcj9tAcJ ------------ próxima parte ------------ Se ha borrado un adjunto en formato HTML... URL: http://mail.pm.org/pipermail/madrid-pm/attachments/20080131/78d6f135/attachment.html