• Publicidad

Definir strings

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

Definir strings

Notapor bartg01 » 2008-04-03 05:48 @283

Creo que es un problema de sintaxis pero me estoy volviendo loco, el asunto consiste en que por cada valor de un for quiero definir un string diferente, de esta forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
   for ($i=0;$i<=10;$i++) {
          my $string.$i = $array[$i];
   }
Coloreado en 0.005 segundos, usando GeSHi 1.0.8.4

Al que pueda llamar cuando quiera como:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    print $string1 o 2 o 3....;
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Imprimiendo en pantalla el valor $array.

Pero no lo consigo de ninguna forma.
bartg01
Perlero nuevo
Perlero nuevo
 
Mensajes: 23
Registrado: 2007-11-29 16:15 @718

Publicidad

Notapor explorer » 2008-04-03 07:42 @362

Primero, estás usando 'my' dentro del contexto de un bucle for(), por lo que esas nuevas variables no serán conocidas fuera del bucle for().

Una posible solución:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

@array = (1..10);

for ($i=0; $i<=10; $i++) {
  ${"string$i"} = $array[$i];
}

$i = 4;

print $string1,      "\n"; # 2
print ${"string$i"}, "\n"; # 5
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Pero lo recomendable es no hacer eso, porque manejar hashes es muchísimo más fácil, cómodo y seguro:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
#!/usr/bin/perl

@array = (1..10);

for ($i=0; $i<=10; $i++) {
  $string{$i} = $array[$i];
}

$i = 4;

print $string{1},  "\n"; # 2
print $string{$i}, "\n"; # 5
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Última edición por explorer el 2008-04-03 13:29 @603, editado 1 vez en total
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

Notapor bartg01 » 2008-04-03 10:47 @491

Ok, gracias explorer. Problema solucionado una vez más.
bartg01
Perlero nuevo
Perlero nuevo
 
Mensajes: 23
Registrado: 2007-11-29 16:15 @718

Re: Definir strings

Notapor Jenda » 2008-04-12 07:16 @344

bartg01 escribiste:Creo que es un problema de sintaxis pero me estoy volviendo loco, el asunto consiste en que por cada valor de un for quiero definir un string diferente, de esta forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
   for ($i=0;$i<=10;$i++) {
          my $string.$i = $array[$i];
   }
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Al que pueda llamar cuando quiera como:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
    print $string1 o 2 o 3....;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Imprimiendo en pantalla el valor $array.

Pero no lo consigo de ninguna forma.


No, no lo quieres. Es mucho más fácil seguir trabajando con el @array.
Si crees que quieres tener un grupo de variables con nombres similares, es casi siempre mejor usar un array o hash.

Te recomendo leer
http://perl.plover.com/varvarname.html
(Si no lo puedes leer en inglés, dime y yo voy a intentar a traducirlo. No va a ser ninguna buena traducción pero puedo probar.)
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa

Notapor kidd » 2008-04-12 09:12 @425

Estoy de acuerdo con Jenda. Yo no me iría por el camino que quieres, más bien crearía un hash y en él nombras a las llaves como deseas.

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


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: Google [Bot] y 0 invitados

cron