[caracas-pm] problemas con script de hash
Manuel Sanguino
manuel.sanguino at gmail.com
Thu May 26 07:48:57 PDT 2005
bueno gracias ...por la respuesta ...voy a ver como me va con tu forma
gracias
On 5/25/05, Cesar Mendoza <mendoza at kitiara.org> wrote:
> Hola,
>
> Respondiendo a tu pregunta, el script imprime como se va llenando el
> hash, si solo quieres ver el resultado final, tienes que sacar el
> código:
>
> for my $key(sort keys %Datos){
> print "$key: $Datos{$key}\n";
> }
>
> fuera del loop.
>
> Otra cosa, todo el código del foreach se podría reemplazar por
> algo así:
>
> %Datos = map { /([A-Z])(\d+)/; $1 => $2 } grep { $_ ne '' } split
> %/([A-Z]\d+)/, $dat3;
>
> Se deja como tarea el porque funciona.
>
> Bye
> Cesar Mendoza
> http://www.kitiara.org
> --
> "First they tell you, you're wrong and they can prove it;
> then they tell you, you're right but it isn't important;
> then they tell you, it's important but they knew it all along."
> --Charles Kettering
>
> On Tue, May 24, 2005 at 12:21:24PM -0400, Manuel Sanguino wrote:
> > bueno gracias a KiDD del foro perl en español por el script que me
> > envio ta muy bueno ... sin embargo cuando lo utilizo en mi script, en
> > mi programa script, me da resultados erroneos.
> >
> > el script
> >
> > while ( <$remote> )
> > {
> > $count++;
> > $dat1=$_;
> > chomp($dat1);
> > $dat2=$dat2.$dat1;
> > push(@arreglo,$dat2);
> > $dat3=pop(@arreglo);
> >
> > #acomodar datos en una arreglo hash
> >
> > foreach(split //, $dat3){ #itero carater por caracter
> >
> > print"$dat3\n";
> >
> > if(/([A-Z])/){
> > $Datos{$_} = '';
> > $memoria = $1;
> > }
> >
> > elsif(/(\d)/){
> > $Datos{$memoria} .= $1;
> > }
> > for my $key(sort keys %Datos){
> > print "$key: $Datos{$key}\n";
> > }
> >
> > }
> > }
> >
> >
> >
> > este script lee el ultimo valor de una arreglo ..el ultimo valor tiene
> > algo como esto
> >
> > A111B222C333D444E555
> >
> > y luego con este valor hace un split y acomoda cada letra con los
> > valores en un arreglo hash
> >
> > bueno ahy un error observen la salida ademas que me da otro valor q
> > no se de dond sale ...pero la verdad no me importa mucho... lo curioso
> > es que ese valor si lo imprime siempre
> >
> > A111B222C333D4444
> > : 0
> > A: 111
> > B: 222
> > C: 333
> > D: aca faltaron todos los varlores de D
> > A111B222C333D4444
> > : 0
> > A: 111
> > B: 222
> > C: 333
> > D: 4 aca faltaron 2 valores de D
> > A111B222C333D4444 observen que la variable los tiene
> > : 0
> > A: 111
> > B: 222
> > C: 333
> > D: 44 aca falto un valor de D y
> > A111B222C333D4444
> > : 0
> > A: 111
> > B: 222
> > C: 333
> > D: 444
> > A111B222C333D4444
> > : 0
> > A: 111
> > B: 222
> > C: 333
> > D: 444
> > A111B222C333D4444
> > : 0
> > A:
> > B: 222
> > C: 333
> > D: 444
> > A111B222C333D4444
> > : 0
> > A: 1
> > B: 222
> > C: 333
> > D: 444
> >
> >
> > como pueden ver a veces me imprime todos los valores y a veces no... a
> > que se debe esto??? porque ???? y observen q la variable tiene $dat3
> > todos lo valores ...???
> > _______________________________________________
> > caracas-pm mailing list
> > caracas-pm at pm.org
> > http://mail.pm.org/mailman/listinfo/caracas-pm
>
>
More information about the caracas-pm
mailing list