Indirekt referenzieren in perl - möglich?!? - baseportal Forum - Web-Anwendungen einfach, schnell, leistungsfähig!
baseportal
English - Deutsch "Es gibt keine dummen Fragen - jeder hat einmal angefangen"

 baseportal-ForumDie aktuellsten 10, 30, 50, 100 Einträge anzeigen.  

 
 Ausgewählter Eintrag: Zur Liste 
    Beitrag von Old Eagle Eye (148 Beiträge) am Freitag, 9.August.2002, 10:24. WWW: www.bigmountain.at
    Indirekt referenzieren in perl - möglich?!?

      Hallo Forum,
      vielleicht erkennt man ja an meiner heutigen Frage sofort, dass ich mich bei perl nicht wirklich auskenne, aber trotzdem hätte ich heute gerne gewusst, ob es mittels Perl möglich ist, auf Variablen indirekt zu referenzieren?
      Zur Erklärung: Ich habe eine DB mit diversen Vokabeln für unterschiedliche Sprachen. Diese sind in den Feldern $Deutsch, $Italiano, $English, etc abgelegt. Und dann habe ich da noch (nicht ganz fertig) eine andere Anwendung, welche ein Eingabeformular erzeugt, dass je nach ausgewählter Sprache entsprechend aufgebaut wird (=Zukunftsmusik). Als Beispiel hier der Code für die Einstellung der Monate im Datumsfeld:

      for (my $i=1; $i<13; $i++){ ##Monate einstellen
       get "Wert==$i", "/meinAccountbeinetpure/Sprachen/Monate", "mese";
       $myMonatName.="<option value=\"$i\"";
       $myMonatName.=" selected" if ($i==$aktuellmonat); ##Bin im aktuellen Monat
       $myMonatName.=">";
       $myMonatName.="$Deutsch" if ($myLang eq "Deutsch");
       $myMonatName.="$English" if ($myLang eq "English");
       $myMonatName.="$Italiano" if ($myLang eq "Italiano");
       $myMonatName.="$Francaise" if ($myLang eq "Francaise");
       $myMonatName.="$Espanol" if ($myLang eq "Espanol");
      }
      

      Das ist meines Erachtens umständlich und wenig performant und muss außerdem jedes Mal neu geschrieben werden, d.h. für alle Felder im Formular. Meine Wunschvorstellung wäre, z.B. an einer zentralen Stelle einzustellen, auf welches Feld der DB jetzt aktuell referenziert werden soll. Also in etwa so:

      An zentraler Stelle:
       $myLangFeldName="\$Deutsch" if ($myLang eq "Deutsch");
       $myLangFeldName="\$English" if ($myLang eq "English");
       $myLangFeldName="\$Italiano" if ($myLang eq "Italiano");
       $myLangFeldName="\$Francaise" if ($myLang eq "Francaise");
       $myLangFeldName="\$Espanol" if ($myLang eq "Espanol");
      

      und dann in der ‘jeweiligen’ Anwendung:

      for (my $i=1; $i<13; $i++){ ##Monate einstellen
       get "Wert==$i", "/ meinAccountbeinetpure /Sprachen/Monate", "mese";
       $myMonatName.="<option value=\"$i\"";
       $myMonatName.=" selected" if ($i==$aktuellmonat); ##Bin im aktuellen Monat
       $myMonatName.=">(Inhalt von Variable)$myLangFeldName";
      }
      

      Das obige Beispiel funktioniert so leider nicht!!! – aber vielleicht weiß ja einer von euch, wie es ‚richtig’ geht.

      Danke schon mal für eure Antworten
      OEE


    Ihre Antwort:

    Name: EMail: EMail bei Antwort? WWW:
    Titel:
    Text:

    Neuer Eintrag


 Alle Einträge zum Thema: Zur Liste 
    Beitrag von Old Eagle Eye (148 Beiträge) am Freitag, 9.August.2002, 10:24. WWW: www.bigmountain.at
    Indirekt referenzieren in perl - möglich?!?

      Hallo Forum,
      vielleicht erkennt man ja an meiner heutigen Frage sofort, dass ich mich bei perl nicht wirklich auskenne, aber trotzdem hätte ich heute gerne gewusst, ob es mittels Perl möglich ist, auf Variablen indirekt zu referenzieren?
      Zur Erklärung: Ich habe eine DB mit diversen Vokabeln für unterschiedliche Sprachen. Diese sind in den Feldern $Deutsch, $Italiano, $English, etc abgelegt. Und dann habe ich da noch (nicht ganz fertig) eine andere Anwendung, welche ein Eingabeformular erzeugt, dass je nach ausgewählter Sprache entsprechend aufgebaut wird (=Zukunftsmusik). Als Beispiel hier der Code für die Einstellung der Monate im Datumsfeld:

      for (my $i=1; $i<13; $i++){ ##Monate einstellen
       get "Wert==$i", "/meinAccountbeinetpure/Sprachen/Monate", "mese";
       $myMonatName.="<option value=\"$i\"";
       $myMonatName.=" selected" if ($i==$aktuellmonat); ##Bin im aktuellen Monat
       $myMonatName.=">";
       $myMonatName.="$Deutsch" if ($myLang eq "Deutsch");
       $myMonatName.="$English" if ($myLang eq "English");
       $myMonatName.="$Italiano" if ($myLang eq "Italiano");
       $myMonatName.="$Francaise" if ($myLang eq "Francaise");
       $myMonatName.="$Espanol" if ($myLang eq "Espanol");
      }
      

      Das ist meines Erachtens umständlich und wenig performant und muss außerdem jedes Mal neu geschrieben werden, d.h. für alle Felder im Formular. Meine Wunschvorstellung wäre, z.B. an einer zentralen Stelle einzustellen, auf welches Feld der DB jetzt aktuell referenziert werden soll. Also in etwa so:

      An zentraler Stelle:
       $myLangFeldName="\$Deutsch" if ($myLang eq "Deutsch");
       $myLangFeldName="\$English" if ($myLang eq "English");
       $myLangFeldName="\$Italiano" if ($myLang eq "Italiano");
       $myLangFeldName="\$Francaise" if ($myLang eq "Francaise");
       $myLangFeldName="\$Espanol" if ($myLang eq "Espanol");
      

      und dann in der ‘jeweiligen’ Anwendung:

      for (my $i=1; $i<13; $i++){ ##Monate einstellen
       get "Wert==$i", "/ meinAccountbeinetpure /Sprachen/Monate", "mese";
       $myMonatName.="<option value=\"$i\"";
       $myMonatName.=" selected" if ($i==$aktuellmonat); ##Bin im aktuellen Monat
       $myMonatName.=">(Inhalt von Variable)$myLangFeldName";
      }
      

      Das obige Beispiel funktioniert so leider nicht!!! – aber vielleicht weiß ja einer von euch, wie es ‚richtig’ geht.

      Danke schon mal für eure Antworten
      OEE

     Antworten

    Beitrag von Sander (8133 Beiträge) am Freitag, 9.August.2002, 11:00.
    Re: Indirekt referenzieren in perl - möglich?!?

      hmm, wenn ich es richtig verstehe:
      $myLangFeldName="Deutsch" if ($myLang eq "Deutsch");
      $feld="januar";
      $myMonatName.=">${$feld.$myLangFeldName}";
      ergibt $januarDeutsch
      

      meinst das?

      Sander

     Antworten

    Beitrag von Old Eagle Eye (148 Beiträge) am Freitag, 9.August.2002, 11:26. WWW: www.bigmountain.at
    Genial

      Danke - fast so wie du es geschrieben hast, aber es hat mir die Lösung gebracht. Ich brauchte es noch einfacher, wußte aber die Sache mit den {} nicht.
      So sieht jetzt mein Code aus:
      for (my $i=1; $i<13; $i++){ ##Monate einstellen
       get "Wert==$i", "/meineDB/Sprachen/Monate", "mese";
       $myMonatName.="<option value=\"$i\"";
       $myMonatName.=" selected" if ($i==$aktuellmonat); ##Bin im aktuellen Monat
       $myMonatName.=">${$selLang}";
      }
      

      Ich übergebe die Var $selLang über URL oder Perl und es funktioniert genau so, wie ich mir das vorstelle

      Danke
      OEE

     Antworten

    Beitrag von Christoph Bergmann (8110 Beiträge) am Freitag, 9.August.2002, 15:53.
    Re: Genial

      hier könntest du die {} sogar auch noch weglassen:

      $myMonatName.=">$$selLang";
      

      nur so ;-)

     Antworten


     
 Liste der Einträge von 44851 bis 45001:Einklappen Zur Eingabe 
Neueste Einträge << 10 | 9 | 8 | 7 | 6 | 5 | 4 | 3 | 2 | Neuere Einträge < Zur Eingabe  > Ältere Einträge | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 >> Älteste Einträge


Zurück zur Homepage

© baseportal.de. Alle Rechte vorbehalten. Nutzungsbedingungen



powered in 0.08s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!