Connie: Konzept der Namensräume; Global, Dynamic und Lexical Scope

Beitrag lesen

Hallo Siechfred,
also jetzt einige Fragen.

Dynamic Scope

Gibt es eine globale Variable, wird sie im Block kopiert und sämtliche Manipulationen innerhalb des Blocks werden ungültig, wenn der Block beendet ist.

Unter kopieren verstehe ich die Neuanlage der Variablen in dem Package   m i t  dem Variablenwert

Gibt es keine gleichnamige globale Variable, wird sie als quasi-lokale Variable angelegt:

Was heißt quasi-lokal? Wenn die Variable nur in dem Block gültig ist und nicht wie die mit "our" definierte Variablen auch außerhalb, ist dies doch echt lokal - oder nicht?

Knackpunkt ist die local-Anweisung, die diese globale Variable kopiert. Da keine Wertzuweisung erfolgt, ist ihr Wert undef, ...

Warum undef, wenn Variable kopiert wurde (s.o.)

Lexical Scope
... Außerhalb des umgebenden Blocks oder Namensraums sind sie nur sichtbar, ....

Ist Block ein anderer Begriff für Namensraum, wenn nein was hat der Block mit Namespace und Scope zu tun?

... wurden sie mittels my deklariert, sind sie nach außen unsichtbar. Nach innen sind beide Varianten für alle nachgeordneten Blöcke und Namensräume sichtbar

Nach aussen und nach innen ist mir unklar.

Die Variable $foo_loc ist via my als lokal innerhalb des Packages bar deklariert mit der Besonderheit, dass sie außerhalb von bar nicht sichtbar ist, während $foo_glob zwar auch lokal in bar ist, aber durch die Deklaration via our nach außen sichtbar ist. Um auf $foo_glob außerhalb von bar zuzugreifen, notiert man den Namensraum davor (also $bar::foo_glob). Jede Manipulation an $foo_glob, auch außerhalb von bar, hat Auswirkungen auch innerhalb von bar:

$foo_glob ist lokal in bar aber von außen sichtbar, ja sogar änderbar.
Anscheinend verstehe ich lokal falsch. Bisher war ich der Meinung "lokal" heißt nur in der betreffenden Ugebung bekannt (Datenkapselung).

Gruß Connie

0 80

Frage zu packages

Connie
  • perl
  1. 0
    Patrick Andrieu
    1. 0
      Connie
      1. 0
        Connie
        1. 0
          Patrick Andrieu
          1. 0
            Struppi
            1. 0
              Patrick Andrieu
              1. 0
                Struppi
                1. 0
                  Patrick Andrieu
            2. 0
              Connie
              1. 0
                Connie
    2. 0
      Connie
    3. 6

      Konzept der Namensräume; Global, Dynamic und Lexical Scope

      Siechfred
      1. 0
        Connie
      2. 0
        Connie
        1. 0
          Patrick Andrieu
          1. 0
            Connie
            1. 0
              Patrick Andrieu
              1. 0
                Connie
                1. 0
                  Connie
                  1. 0
                    Struppi
                    1. 0
                      Connie
                      1. 0
                        Struppi
                        1. 0
                          Connie
                          1. 0
                            Struppi
                            1. 0
                              Connie
                              1. 0
                                Struppi
                                1. 0
                                  Connie
                                  1. 0
                                    Struppi
                                    1. 0
                                      Connie
                                      1. 0
                                        Struppi
                                      2. 0
                                        Struppi
                                      3. 0
                                        Patrick Andrieu
                                        1. 0
                                          Struppi
                                          1. 0
                                            Kurt
                                            1. 0
                                              Struppi
                                              1. 0
                                                Kurt
                                                1. 0
                                                  Struppi
                                                  1. 0
                                                    Kurt
                                                    1. 0
                                                      Kurt
                                                      1. 0
                                                        Thomas
                                                        1. 0
                                                          Siechfred
                                                          1. 0
                                                            Kurt
                                                            1. 0
                                                              Siechfred
                                                              1. 0
                                                                Kurt
                                                        2. 0
                                                          Kurt
                                                          1. 0
                                                            Kurt
        2. 0
          Siechfred
      3. 0
        Patrick Andrieu
        1. 0
          Kurt
      4. 0
        Kurt
        1. 0

          my erzeugt keinen Packagevariablen!

          Kurt
        2. 0
          Siechfred
          1. 0
            Siechfred
            1. 0

              Konzeption...

              Patrick Andrieu
              • menschelei
            2. 0
              Kurt
              1. 0
                Siechfred
                1. 0
                  Kurt
  2. 0
    Kurt
    1. 0
      Kurt
    2. 0
      Struppi
      1. 0
        Kurt
      2. 0
        Interessierter Leser
        1. 0
          Interessierter Leser
          1. 0

            Coping with Scoping

            Kurt
        2. 0
          Kurt
  3. 0

    Zusammenfassende Darstellung, Kritik willkommen!

    Siechfred
    1. 0
      Kurt
      1. 0
        Struppi
        1. 0
          Kurt
          1. 0
            Struppi
            1. 0
              Thomas
              1. 0
                Struppi
            2. 0
              Kurt
              1. 0
                Struppi
                1. 0

                  1 Klasse= 1 Modul ?

                  Kurt
                  1. 0
                    Struppi
      2. 0
        Siechfred
        1. 0
          Thomas
        2. 0
          Kurt