The UNIX and Linux Forums  
Hallo en welkom van de Verenigde Staten aan de UNIX en Linux Forum! Bedankt voor uw bezoek en Deelnemen aan onze wereldwijde gemeenschap.

Go Back   De Unix-en Linux Forum > Top Forums > Programmeren en Shell Scripting
.
google unix.com



Programmeren en Shell Scripting Post vragen over KSH, CSH, SH, Bash, Perl, PHP, sed, awk en andere shell scripts en shell scripting talen hier.

Meer UNIX en Linux Forum Onderwerpen Misschien vindt u Helpful
Draad Thread Starter Forum Antwoorden Last Post
Meerdere variabelen in een variabele in Perl Raynon Programmeren en Shell Scripting 3 05-04-2009 10:10 PM
Pass csh variabele Perl Raynon Programmeren en Shell Scripting 9 10-19-2007 09:46 PM
perl niet lezing mijn variabele yoonixq4u Programmeren en Shell Scripting 3 08-24-2007 09:24 PM
PERL: hoe om te vertellen als variabele is NULL dangral Programmeren en Shell Scripting 4 03-19-2003 01:34 PM
perl variabele assingment seismic_willy Programmeren en Shell Scripting 2 01-29-2002 04:54 PM

Reply
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
LinkBack Thread Tools Zoeken in deze Thread Rate Thread Display Modes
  #1 (permalink)  
Old 05-27-2009
zedex zedex is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2007
Locatie: India, Mumbai
Posts: 138
perl krijgen variabele waarde?

hi ik heb volgende code
Code:
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" ;
}
bovenstaande ding werkt niet!
Ik wil als k \u003d 1 msg \u003d "A"

hoe kan ik dat doen?

----- Post Update -----

Ik heb het werk die ik heb gemaakt array in plaats van 3 variabelen .. maar toch als je kan mij vertellen hoe kan het doen zonder array alleen voor nieuwsgierigheid ...

Laatst bewerkt door zedex; op 05.27.2009 06:41.. Reden: verwijderd extra update ...
  #2 (permalink)  
Old 05-27-2009
cbkihong cbkihong is offline Forum Advisor  
Adviseur
  
 

Join Date: Sep 2002
Locatie: Hong Kong, China
Berichten: 1624
Code:
# No "my" here
$a1 = "A" ;
$a2 = "B" ;
$a3 = "C" ;

foreach my $k ( 1,2,3 )
{
    my $msg = ${"a${k}"};
    print "$msg\n" ;
}
Dit is symbolisch referentie, en is niet typisch aan te bevelen. Het werkt voor de variabelen in het symbool tabel alleen, dus dat betekent dat je niet kan gebruiken deze truc voor variabelen die lexicaal scoped zijn (dat wil zeggen "mijn").

Ben je echt zeker dat je dit? Ik kan mij geen reden om te pleiten voor dergelijke constructies in een typisch programma's, behalve gespecialiseerde modules die moeten knoeien met het symbool tabel rechtstreeks.
  #3 (permalink)  
Old 05-27-2009
zedex zedex is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2007
Locatie: India, Mumbai
Posts: 138
Ik heb het werken met array.

eigenlijk was er een deel in de code die werd herhaald. zoals controle 5,6,7 argument lengte is 1 en vervolgens de geldige inschrijving na controle dus ik wilde om af te drukken die stelling onjuist was.

Code:
$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 (permalink)  
Old 05-27-2009
KevinADC KevinADC is offline Forum Advisor  
Geregistreerde gebruiker
  
 

Join Date: Jan 2008
Posts: 731
zedex,

wat u wilt doen is gebruik van een hash.

Ervan uitgaande dat de rest van je code werkt:

Code:
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" ;      
       }
}
Hashes zijn een fundamenteel begrip van perl (en andere programmeertalen), moet u op te lezen op hen en ze te gebruiken als dat nodig is.
  #5 (permalink)  
Old 05-28-2009
zedex zedex is offline
Geregistreerde gebruiker
  
 

Join Date: Feb 2007
Locatie: India, Mumbai
Posts: 138
dankzij KevinADC

eigenlijk was ik betrokken bij veel dingen zo vergeten eenvoudige gebruik van HASH. hoewel ik hasj gebruikt voor dit dezelfde reden eerder .. een leuke manier om te weten hoe dat te doen
Reply

Bladwijzers

Thread Tools Zoeken in deze Thread
Zoeken in deze Thread:

Uitgebreid zoeken
Display Modes Beoordeel deze draad
Beoordeel deze draad:

Posting Regels
Jij mag niet Post Nieuwe threads
Jij mag niet na antwoorden
Jij mag niet post attachments
Jij mag niet bewerk uw berichten

BB code is Aan
Smilies zijn Aan
[IMG] code Aan
HTML-code is Uit
Trackbacks zijn Aan
Pingbacks zijn Aan
Refbacks zijn Aan




Alle tijden zijn GMT -4. Het is nu 12:13.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Vertalingen Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
De Unix-en Linux Forums Copyright © 1993-2009. Alle rechten Reserved.Ad Beheer door RedTyger

Content Relevante URL's door vBSEO 3.2.0