• Publicidad

Separando datos y almacenándolos en variables

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Separando datos y almacenándolos en variables

Notapor erv-Z » 2010-01-06 17:55 @788

Buenas. Tengo una duda. Quisiera saber cómo almacenar x valor en variable. A ver si con este ejemplo me hago entender.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$a='hola';
$e='adios';
$letras = ($a, $e);
print $letras;
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Ok, ahora explico un poco más: tengo una variable con un valor tipo string, pero a ese valor se convierte en el mismo pero dos veces y le agrego una letra al principio y otra al final; luego esos valores los guardo en una variable y al imprimir la variable me imprime los dos valores, pero los dos no son unos, son diferentes valores; lo que quiero es guardar los dos valores de la variable en dos variables diferentes y luego imprimir las variables por separados.

Aunque esto parece más un acertijo xDDD

Nota: Para ser más explicativo, los valores están en una variable y cuando imprimo la variable y le agrego un \n los valores salen uno abajo de otro...
Última edición por erv-Z el 2010-01-06 18:37 @817, editado 1 vez en total
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Publicidad

Re: separando datos y almacenandolos en variables

Notapor teco000 » 2010-01-06 18:35 @816

No sé si esto es lo que necesitas.
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras=$a." ".$b;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
teco000
Perlero nuevo
Perlero nuevo
 
Mensajes: 67
Registrado: 2008-05-29 15:22 @682
Ubicación: Guatemala

Re: separando datos y almacenandolos en variables

Notapor erv-Z » 2010-01-06 18:51 @827

No es eso, eso es lo mismo que la línea 3. Lo que busco es otra cosa, trata de leer bien lo que escribí y si hay dudas responder el post.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Separando datos y almacenándolos en variables

Notapor explorer » 2010-01-06 19:26 @851

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras[0] = 'hola';
$letras[1] = 'adios';
print "$letras[0]\n"; # hola
print "$letras[1]\n"; # adios
print "@letras\n";    # hola adios
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Más alienígena:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use Scalar::MultiValue;

my $variable = Scalar::MultiValue->new( [qw(hola adios)] ) ;

print "$variable\n"; # hola
print "$variable\n"; # adios
print "$variable\n"; # hola
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Separando datos y almacenándolos en variables

Notapor erv-Z » 2010-01-06 19:34 @857

¡Exactamente buscaba eso!

Ahora una pregunta más: ¿puedo usar expresiones regulares? O sea, en
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $variable = Scalar::MultiValue->new( [qw(hola adios)] ) ;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

porque si tengo lo siguiente:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras[0] = '1hola';
$letras[1] = 'hola1212';
print "$letras[0]\n";
print "$letras[1]\n";
print "@letras\n";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

quisiera sacarla desde expresiones regulando, la primera indicando que comienza con número y la segunda que termina con números.

¡¡¡¡Saludos y gracias!!!!

Nota: Si se puede hacer lo mismo sin módulo o un módulo que esté instalado por defecto en Perl, sería genial.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Separando datos y almacenándolos en variables

Notapor explorer » 2010-01-06 20:07 @879

El módulo Scalar::MultiValue devuelve los valores en secuencia, por lo que sí podrías hacer concordancia con expresiones regulares.

Y no, Scalar::MultiValue no viene instalado por defecto. Por eso es alienígena. Aunque lo puedes tener instalado en tu máquina en unos segundos.

La solución más sencilla sigue siendo usar arreglos (arrays).
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras[0] = '1hola';
$letras[1] = 'hola1212';

if ($letras[0] =~ /^\d/  and  $letras[1] =~ /\d$/) {
    print "SI\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Separando datos y almacenándolos en variables

Notapor erv-Z » 2010-01-06 20:15 @885

Pues yo estaba codeando algo. No funcionó. A ver si se puede hacer...
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras[0] = 'hola';
$letras[1] = 'adios';
print "$letras[0]\n"; # hola
print "$letras[1]\n"; # adios
print "@letras\n";    # hola adios
foreach $let (@letras){
    $let = @letr;
print @letr[0];
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Separando datos y almacenándolos en variables

Notapor explorer » 2010-01-06 20:27 @894

Si pongo 'use warnings;' al principio del código, Perl me dice que qué narices es eso de @letr, que no sabe de dónde ha salido.

Y no sé qué es lo que quieres hacer. ¿Imprimir los valores del arreglo?
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
for my $letra (@letras) {
    print "$letra\n";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Separando datos y almacenándolos en variables

Notapor erv-Z » 2010-01-06 20:44 @905

Ok, mira, me explico un poco más con este código:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$letras[0] = '1hola';
$letras[1] = '1holacomoestas';
  #
foreach $let(@letras){
    print "$let";
}
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

La salida es:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
1hola1holacomoestas
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

Y con nueva línea:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
1hola
1holacomoestas
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Pero hacerlo como si fuera con el módulo Scalar::MultiValue, pero sin módulo, o un módulo que esté por defecto.
erv-Z
Perlero nuevo
Perlero nuevo
 
Mensajes: 158
Registrado: 2009-07-25 13:00 @583

Re: Separando datos y almacenándolos en variables

Notapor explorer » 2010-01-06 21:26 @934

Pues no, no conozco que ninguno de los módulos incluidos con la distribución Perl pueda hacer algo parecido a Scalar::MultiValue.

¿Qué problema tienes teniendo la información guardada en una variable array?

Sigo sin ver claro qué es lo que quieres.

¿Cuánta información quieres guardar? ¿En qué orden? ¿A dónde la quieres llevar? ¿A pantalla, a fichero? ¿Realizar operaciones con otros datos? ¿Filtrar la salida? ¿Sacar todos los valores? ¿De qué forma? ¿Cuándo? ¿En qué momento?

Ya solo me falta hacer la pregunta básica: ¿Qué es lo que quieres hacer? No me refiero a este pequeño problema, sino al GRANDE.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Siguiente

Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron