The UNIX and Linux Forums  

Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
Múltiples variables en una variable en Perl Raynon Programación de scripts de shell y 3 05-04-2009 11:10 PM
Csh pasar variable a Perl Raynon Programación de scripts de shell y 9 10-19-2007 10:46 PM
perl no leer mi variable yoonixq4u Programación de scripts de shell y 3 08-24-2007 10:24 PM
PERL: cómo saber si la variable es NULL dangral Programación de scripts de shell y 4 03-19-2003 01:34 PM
perl variable assingment seismic_willy Programación de scripts de shell y 2 01-29-2002 04:54 PM

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 05-27-2009
zedex zedex is offline
Usuario Registrado
  
 

Fecha: febrero 2007
Ubicación: India, Bombay
Puestos: 139
perl obtener valor de la variable?

hola tengo código siguiente

Código:
my $a1 = "A" ;
my $a2 = "B" ;
my $a3 = "C" ;

foreach my $k ( 1,2,3 ) 
{
    my $msg = ${a{$k}} # this should be at runtime i am creating variable a1 and assigning it value to msg .
    print "$msg\n" ;
}

Lo anterior no funciona!
Quiero cuando k \u003d 1 msg \u003d "A"

¿Cómo puedo hacerlo?

Publicar Actualización ----- -----

Tengo que trabajar gama i creado las variables en lugar de 3 .. pero si usted puede decirme cómo puedo hacerlo sin matriz sólo para la curiosidad ...

Última edición por zedex; al 05-27-2009 07:41 AM.. Motivo: eliminado extra actualización ...
  #2 (Enlace permanente)  
Old 05-27-2009
cbkihong cbkihong is offline Forum Advisor  
Asesor
  
 

Fecha: Sep 2002
Ubicación: Hong Kong, China
Puestos: 1.624

Código:
# No "my" here
$a1 = "A" ;
$a2 = "B" ;
$a3 = "C" ;

foreach my $k ( 1,2,3 )
{
    my $msg = ${"a${k}"};
    print "$msg\n" ;
}

Este es un símbolo de referencia, y no se suele recomendar. Trabaja para las variables en la tabla de símbolos, por lo que significa que usted no puede utilizar este truco para las variables que son de ámbito léxico (es decir, "mi").

¿Estás realmente seguro de que quieres esto? No puedo pensar en ninguna razón para abogar por tales construcciones típicas de los programas, excepto los módulos especializados que hay lío con la tabla de símbolos directamente.
  #3 (Enlace permanente)  
Old 05-27-2009
zedex zedex is offline
Usuario Registrado
  
 

Fecha: febrero 2007
Ubicación: India, Bombay
Puestos: 139
Tengo que trabajar con la matriz.

efectivamente hubo una parte en el código que se repita. 5,6,7 control como argumento longitud es 1, y después de su entrada válida después de comprobar que quería imprimir argumento de que estaba equivocado.


Código:
$ARG5 = "ADD ENTRY TO DATABASE" ;
$ARG6 = "ADD ENTRY TO REG FILE" ;
$ARG7 = "SHOW DEBUG MSG" ;

foreach $k in ( 5,6,7) 
{ 
     if ...
     {
      } else 
      { 
             print ${"ARG$k"} entry invalid\n" ;      
       }
}
 
so i created array 

@ARG = ( undef ,undef, ..., "ADD ENTRY TO REG FILE",...) ;

  #4 (Enlace permanente)  
Old 05-27-2009
KevinADC KevinADC is offline Forum Advisor  
Usuario Registrado
  
 

Fecha: enero 2008
Posts: 731
zedex,

lo que quiere hacer es usar un hash.

Asumiendo que el resto de tu código funciona:


Código:
my %ARG = (
   5 => "ADD ENTRY TO DATABASE",
   6 => "ADD ENTRY TO REG FILE",
   7 => "SHOW DEBUG MSG",
);

foreach $k in (5,6,7) {
{ 
     if ...
     {
      } else 
      { 
             print "$ARG{$k} entry invalid\n" ;      
       }
}

Hash son un concepto fundamental de perl (y otros lenguajes de programación), lo que necesitas para leer sobre ellos y utilizarlos cuando sea necesario.
  #5 (Enlace permanente)  
Old 05-28-2009
zedex zedex is offline
Usuario Registrado
  
 

Fecha: febrero 2007
Ubicación: India, Bombay
Puestos: 139
gracias KevinADC

de hecho he participado en muchas cosas tan simples se olvidó de uso de hash. aunque i hash utilizado para esta misma razón anteriormente .. alguna forma agradable saber cómo hacerlo
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 06:53 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0