• Publicidad

Primer nombre de una variable, lo decide el usuario

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

Primer nombre de una variable, lo decide el usuario

Notapor Mono_Ezpacial » 2012-11-08 21:01 @917

Hola, ¿qué tal? Lo primero, quería darle las gracias al administrador de este foro, pues me ha ayudado mucho.

Ahora vamos al grano. En uno mensaje anterior preguntaba cómo crear una variable, de una forma específica. Me funcionó, pero ahora la quiero hacer de esta forma:
Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
add animal_new
  [*] Añada un animal: mono
  [+] EL animal fue añadido correctamente
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4

y quiero que mono se añada a la variable animal_n_1.

Ok, este es el código que tengo hasta ahora:
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1.     $add_animal = "add animal_new ";
  2.     chomp( $usr = <> );
  3.     if ( $usr eq $add_animal ) {
  4.         my $add_animal_x;
  5.  
  6.         print color("blue"), "\t [*]", color("reset"), "Introduce un animal: ";
  7.         chomp( $add_animal_x = <> );
  8.         push @animaladded, $add_animal_x;
  9.  
  10.         if ( scalar(@animaladded) eq '1' ) {
  11.             print color("green"), "\t [+]", color("reset"), "El animal fue añadido correctamente\n";
  12.         }
  13.         else {
  14.             print color("green"), "\t [+]", color("reset"), "El animal fue añadido correctamente\n";
  15.         }
  16.     }
  17.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


En general lo que quiero saber es cómo hacer que se cree una variable así
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $animal_n_1
  2.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

y asi sucesivamente con toda la informacion agregada, ahora cuando agrego una que se cree la $animal_n_2.

Creo que me hago entender

Gracias y ¡¡un abrazo!!
Última edición por explorer el 2012-11-08 21:17 @928, editado 1 vez en total
Razón: Formateado de código con Perltidy
Wake up, Neo... The Matrix has you... Follow the white rabbit. Knock, Knock, Neo.
Mono_Ezpacial
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-09-23 18:09 @798

Publicidad

Re: Primer nombre de una variable, lo decide el usuario

Notapor explorer » 2012-11-08 21:34 @940

Estás intentando resolver un problema muy sencillo de la peor (y complicada) manera posible.

No necesitas 'crear' variables. Solo necesitas almacenar información que puedas recuperar y manipular fácilmente.

¿Quieres 'crear' variables en Perl? Ningún problema:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. $nombre_de_variable = 'animal_n_1';
  2.  
  3. $$nombre_de_variable = 'mono';   # se crea la variable $animal_n_1 con un valor
  4.  
  5. print "$animal_n_1\n";           # devuelve 'mono'
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

Bien, ahora que sabes cómo se crean las variables por programa, NO LO HAGAS ASÍ. Esta es una forma de programar que se ha desechado desde años, porque crea código muy complicado de entender y mantener. Ningún programador actual de Perl usa esta técnica. De hecho, a partir de Perl v5.12, te saldrán avisos y errores por todos lados. Se llaman 'referencias simbólicas', por si te las encuentras en alguna documentación antigua.

Lo que necesitas es entender cómo funcionan los array y los hash en Perl, ya que con ellos tienes resueltos prácticamente todos los problemas de este tipo de almacenamiento.

En un array los elementos se guardan de forma consecutiva, por lo que puedes recuperarlos de la misma manera o según un índice numérico. Y los hash también guardan información, pero esta vez indexada por una clave.

Lo tienes explicado aquí: perldata.

Hablas de crear animal_n_1 y animal_n_2. ¿Qué ocurrirá cuando haya veinte animales? ¿Veinte variables?

En el código que has puesto, ¿te has dado cuenta de que las líneas 11 y 14 son iguales? Algo está mal ahí...

Sería interesante saber qué es lo que realmente quieres que el programa haga.
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: Primer nombre de una variable, lo decide el usuario

Notapor Mono_Ezpacial » 2012-11-10 01:00 @083

Gracias, ya entendí cuál era el error, ¡Un saludo!
Wake up, Neo... The Matrix has you... Follow the white rabbit. Knock, Knock, Neo.
Mono_Ezpacial
Perlero nuevo
Perlero nuevo
 
Mensajes: 17
Registrado: 2012-09-23 18:09 @798


Volver a Básico

¿Quién está conectado?

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

cron