• Publicidad

problemas $_

¿Ya sabes lo que es una referencia? Has progresado, el nível básico es cosa del pasado y ahora estás listo para el siguiente nivel.

problemas $_

Notapor Gochsman » 2005-05-16 17:39 @777

si estoy leyendo el registro o la variable $_ por la cual me estan llegando datos .... de la siguiente manera

A111,B222,C333,D444.....H888; y llega una caracter a la vez ...como haria ...para ir guardando estos datos y despues calsificarlos con A111 en una varialble y B222 en otra y asi con las demas...que piensa uds ..

oigo sugerencias ayuda ...ya se me acabaron las ideas ...

tomando en cuenta que $_ cambia cierto tiempo el script es
#!/usr/bin/perl -w


use lib "/my/perl_directory/lib/perl5/site_perl/5.8.3/";
use IO::Socket::INET6;
$host="150.187.25.206";
my $dat1;
my @arreglo;
my $dat2;
my $dat3;
my $dato;
my $count;
my $volt1;
$remote = IO::Socket::INET6->new( Proto => "tcp",
PeerAddr =>$host,
PeerPort => 8000,
);
unless ($remote) { die "cannot connect to $host" }
$remote->autoflush(1);
while ( <$remote> )
{

$dat1=$_;
print"$dat1"; # aca estoy busca
if(/A/){
$dat2="primer dato a"."$dat2"." $_";
print"$dat1\n";

}

}

print"222 $dat1\n ";
if (/B/)
{
print "en B\n";
print "$dat1\n";
}
print "333 $dat1\n";
if (/C/)
{
print "en C\n";
print "$dat1\n";
}

print "despues \n";

#open(MUESTRA,"|/usr/bin/rrdtool update /home/golan/datos/temperatura.rrd N:$escritorio:$exterior ");
#close(MUESTRA);

}
close $remote;
gg gl hf
Gochsman
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2005-04-22 13:29 @603

Publicidad

Notapor kidd » 2005-05-16 20:50 @909

Hola:

No entiendo muy bien lo que buscas, pero checa este ejemplo:

Código: Seleccionar todo
#!/usr/bin/perl -w

use strict;


#NUESTRO STRING DE CARACTERES
my $string = "A11111B222C333D44E5555F666G7777H88888";

my %Datos;


   #UNA MEMORIA
   my $memoria = '';

   #HACEMOS UNA ITERACIÓN CARACTER POR CARACTER
   foreach(split //, $string){

        if(/(\D)/){
           $Datos{$_} = '';
           $memoria = $1;
        }

        elsif(/(\d)/){
           $Datos{$memoria} .= $1;
        }

   }


#YA TENEMOS NUESTRO HASH DE DATOS COMPLETO
#AHORA LO IMPRIMIMOS
for my $key(sort keys %Datos){
     print "$key: $Datos{$key}\n";
}


Lo que hace es que recibe uno a unos los caracteres que tiene $string, así como tu dices que recibes los datos.

Entonces creamos una hash que va a tener un llave diferente dependiendo de la letra (A,B,C,D...etc), a la cual vamos agregando al valor los números que se reciban hasta llegar a la siguiente letra.

Por ejemplo, al final de recibir los datos uno a uno, tendrás un hash con la siguiente estructura:

Código: Seleccionar todo
$Datos{'A'} = '11111'
$Datos{'B'} = '222'
$Datos{'C'} = '333'
$Datos{'D'} = '44'
$Datos{'E'} = '5555'
$Datos{'F'} = '666'
$Datos{'G'} = '7777'
$Datos{'H'} = '88888'


Así puedes hacer una iteración for para desplegar los datos, o imprimir cada letra independientemente.

Es la solución que se me ocurre por lo que entiendo que necesitas, ya nada más sería cuestión que lo adaptes a tus necesidades.


SALUDOS
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Notapor Gochsman » 2005-05-23 09:39 @444

gracias por tu respuesta ta muy buena ....
gg gl hf
Gochsman
Perlero nuevo
Perlero nuevo
 
Mensajes: 6
Registrado: 2005-04-22 13:29 @603

Re: problemas $_

Notapor luisjf » 2011-09-21 16:25 @726

Hola, buen día, una pregunta que me surgió: ¿la variable $_ viene ligada a todas los loops o solo a los foreach o por el contrario, no tiene relación directa con los bucles? Gracias de antemano.
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1
Avatar de Usuario
luisjf
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2011-05-11 17:57 @790

Re: problemas $_

Notapor explorer » 2011-09-21 18:44 @822

La variable $_ se utiliza cuando no quieres usar una variable normal, tanto en bucles como en buena parte de los operadores y funciones de Perl.

De hecho, en muchas situaciones, tampoco aparece.

Por ejemplo:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. foreach (@amigos) {
  2.     say;
  3. }
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

El bucle "usa" la variable $_ para guardar a cada uno de nuestros @amigos, y say() sabe que, si no le decimos qué, usará el valor de $_ para sacarlo a pantalla.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: problemas $_

Notapor pvaldes » 2011-09-22 07:32 @355

> ir guardando estos datos y después clasificarlos con A111 en una variable y B222 en otra y así con las demás...

También puedes usar push() y meter todos los datos en una sola variable @var, luego accedes a cada componente de la lista de modo independiente.
pvaldes
Perlero nuevo
Perlero nuevo
 
Mensajes: 129
Registrado: 2011-01-22 12:56 @580


Volver a Intermedio

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 9 invitados