![]() |
|
|
google unix.com
|
|||||||
| Forum | Registrera | Forum Regler | Länkar | Album | FAQ | Medlemslista | Kalender | Söka | Dagens inlägg | Markera forum som lästa |
| Shell-programmering och Skript Post frågor om ksh, CSH, SH, bash, PERL, PHP, sed, awk och andra skalskript och skal skriptspråk här. |
Mer UNIX och Linux Forum Ämnen Du kan hitta Helpful
|
||||
| Tråd | Thread Starter | Forum | Svar | Senaste Inlägg |
| Flera olika sätt i en variabel i Perl | Raynon | Shell-programmering och Skript | 3 | 05-04-2009 11:10 |
| Pass csh rörlig till Perl | Raynon | Shell-programmering och Skript | 9 | 10-19-2007 10:46 |
| perl inte läser min variabel | yoonixq4u | Shell-programmering och Skript | 3 | 08-24-2007 10:24 |
| PERL: hur kan vi tala om variabel är NULL | dangral | Shell-programmering och Skript | 4 | 03-19-2003 01:34 |
| perl variabel assingment | seismic_willy | Shell-programmering och Skript | 2 | 01-29-2002 04:54 |
![]() |
|
|
LinkBack | Thread Tools | Sök i denna tråd | Rate Thread | Visningslägen |
|
|
|
||||
|
perl få variabelvärdet???
hej jag har följande kod Kod:
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" ;
}
ovan är att inte arbeta! Jag vill När k \u003d 1 msg \u003d "A" Hur kan jag göra det? ----- Post Update ----- Jag fick den som arbetar jag skapade array istället för 3 variabler .. men om du kan berätta för mig hur kan göra det utan array bara för nyfikenhet ... Senast redigerad av zedex; 05-27-2009 at 07:41.. Orsak: bort extra uppdatering ... |
|
||||
|
Kod:
# No "my" here
$a1 = "A" ;
$a2 = "B" ;
$a3 = "C" ;
foreach my $k ( 1,2,3 )
{
my $msg = ${"a${k}"};
print "$msg\n" ;
}
Detta är symbolisk referens, och är inte normalt rekommendera. Det fungerar för variabler i symbolen tabellen bara, så det betyder att du inte kan använda detta trick för variabler som är lexikalt scoped (dvs "min"). Är du verkligen säker på att du vill ha det här? Jag kan inte komma på någon anledning att förespråka sådana konstruktioner i typiska program utom specialiserade moduler som behöver röra med symbolen bord direkt. |
|
||||
|
Jag fick den som arbetar med array. faktiskt fanns en del i kod som upprepas. vill kontrollera 5,6,7 argument längd är 1 och sedan dess giltig post så efter kontroll jag ville skriva ut vilka argument var fel. Kod:
$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, vad du vill göra är att använda en hash. Om man antar att resten av din kod fungerar: Kod:
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" ;
}
}
Hashar är ett grundläggande begrepp i perl (och andra programmeringsspråk), måste du läsa upp dem och använda dem vid behov. |
![]() |
| Komihåglista |
| Thread Tools | Sök i denna tråd |
| Visningslägen | Betygsätt denna tråd |
|
|