![]() |
|
|
google unix.com
|
|||||||
| Foros | Registro | Reglas de los Foros | Enlaces | Álbumes | Preguntas más frecuentes | Lista de miembros | Calendario | Búsqueda | Puestos de hoy | Marcar Foros Como Leídos |
| 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 |
![]() |
|
|
Linkback vínculo | Herramientas de hilo | Buscar en este Hilo | Tasa de Hilo | Modos de visualización |
|
|
|
||||
|
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 ... |
|
||||
|
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. |
|
||||
|
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",...) ;
|
|
||||
|
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. |
|
||||
|
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 ![]() |
![]() |
| Marcadores |
| Herramientas de hilo | Buscar en este Hilo |
| Modos de visualización | Vota a este hilo |
|
|