@Perler (A.Jurenda?) - Local - my - und "globals" nochmal ne Frage dazu - 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 hempelr (1976 Beiträge) am Donnerstag, 20.Mai.2004, 09:09.
    @Perler (A.Jurenda?) - Local - my - und "globals" nochmal ne Frage dazu

      Hallo,
      ich hab mit der Unterscheidung von local und my und globalen Gültigkeiten immer wieder mal so meine Problemchen....
      Folgender Sachverhalt:
      Ich führe per eval einen kompletten Programmblock, der aus einem DBFeld kommt, aus.
      Laut Literatur wären alle darin initialisierten und belegten Variablen ja "quasilokal" und für den aufrufenden Programmteil nicht sichtbar (seh ich das richtig?)
      Wenn ich nun in diesem eval eine Sub, die im das eval aufrufenden Programmteil definiert wurde, ausführe und dadrin "nur" ein Bündel Variablen belege, wo sind denn dann diese Variablen gültig und sichtbar und welche gleichlautenden überschreiben sie wo - im eval-Block, im Hauptprogramm, nur in der Sub?

      Und wie verhält sich das mit BasePortal-DB-Aufrufen? Sind die in einem EvalBlock aufgerufenen und belegten Feldvariablen "isoliert" oder überschreiben die gleichlautende Feldvariablen aus dem aufrufenden Programmteil?

      Danke für Tipps

      Ruben


    Antworten

 Alle Einträge zum Thema: Zur Liste 
    Beitrag von hempelr (1976 Beiträge) am Donnerstag, 20.Mai.2004, 09:09.
    @Perler (A.Jurenda?) - Local - my - und "globals" nochmal ne Frage dazu

      Hallo,
      ich hab mit der Unterscheidung von local und my und globalen Gültigkeiten immer wieder mal so meine Problemchen....
      Folgender Sachverhalt:
      Ich führe per eval einen kompletten Programmblock, der aus einem DBFeld kommt, aus.
      Laut Literatur wären alle darin initialisierten und belegten Variablen ja "quasilokal" und für den aufrufenden Programmteil nicht sichtbar (seh ich das richtig?)
      Wenn ich nun in diesem eval eine Sub, die im das eval aufrufenden Programmteil definiert wurde, ausführe und dadrin "nur" ein Bündel Variablen belege, wo sind denn dann diese Variablen gültig und sichtbar und welche gleichlautenden überschreiben sie wo - im eval-Block, im Hauptprogramm, nur in der Sub?

      Und wie verhält sich das mit BasePortal-DB-Aufrufen? Sind die in einem EvalBlock aufgerufenen und belegten Feldvariablen "isoliert" oder überschreiben die gleichlautende Feldvariablen aus dem aufrufenden Programmteil?

      Danke für Tipps

      Ruben

     Antworten

    Beitrag von Jurenda (305 Beiträge) am Sonntag, 30.Mai.2004, 14:41.
    Re: @Perler (A.Jurenda?) - Local - my - und "globals" nochmal ne Frage dazu

      Ich setze mal voraus, daß das Wissen über globale Variablen, local; und my; bekannt ist.

      Wo auch immer Du ein my; einsetzt, sind diese Variablen nur innerhalb dieses Blocks bekannt. Außerhalb dieses Blocks gibt es selbst den Namen dieser Variablen nicht:

      <perl>
      # hier gibt noch überhaupt gar nichts
      eval('$g = 5; my $x; get;'); # $x ist nur innerhalb von eval() bekannt
      # hier gibt es nix von $x, auch keinen Namen x
      # aber natürlcih gibts jetzt ein $g;
      # und %_get ist durch das get; verändert worden!
      </perl>
      

      Bei allen anderen Variablen gibt es jetzt (bezüglich eines eval();) zum allgemeinen Veralten in Perl eine Besonderheit: Es gibt für sie ein davor und ein danach.

      Üblicherweise sind globale und locale Variablen vom Programmstart weg immer bekannt.

      Bei einem eval(); existieren diese vor dem Aufruf von eval(); noch nicht und danach gibts diese natürlich und sie haben das bekannte Verhalten.

      Deine Frage auf die Auswirkungen auf bestehende Variablen bzw. Baseportal-Aufrufe ist einfach zu beanbtworten.

      Verhalten und Auswirkungen sind identisch mit jenem, bei dem Du anstelle des eval(); einfach den auszuführenden Code direkt an dieser Stelle ins Programm schreibst.

      Ich hoffe, daß ich jetzt auch Deine Frage beantwortet habe ;)

      Grüße Andreas :-})

     Antworten

    Beitrag von hempelr (1976 Beiträge) am Dienstag, 1.Juni.2004, 12:01.
    Re: @Perler (A.Jurenda?) - Local - my - und "globals" nochmal ne Frage dazu

      Danke - ja genau das war mein ansinnen - sind sie nun bekannt oder nicht.
      Das heisst also, dass mit eval ausgeführter Code auch die bp-Systeminternen Hashs manipuliert werden (können), und diese Werte dann danach auch noch haben.
      OK - das hilft mir weiter, danke
      Ruben

     Antworten


     
 Liste der Einträge von 30300 bis 30450: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.12s by baseportal.de
Erstellen Sie Ihre eigene Web-Datenbank - kostenlos!