Siechfred: Zusammenfassende Darstellung, Kritik willkommen!

Beitrag lesen

Hey Kurt.

Erstmal Danke für's Feedback.

Ein Anfänger sollte erst "my" und "our" begriffen haben, bevor er anfängt mehrere "package" in einem File oder "local" zu benutzen.

Ein Perl-Anfänger muss sich m.E. folgende Grundregeln verinnerlichen:

ad 1:
Es gibt in Perl zwei völlig verschiedene Variablen-Konzeptionen: Packagevariablen und lexikalische Variablen.

ad 2:
Das Vermischen beider Konzepte birgt Gefahren, denen sich ein Anfänger nicht aussetzen sollte.

ad 3:
Ein Anfänger sollte stets den Lexical Scope verwenden und sein Tun vom strict-Pragma überwachen lassen.

Außerdem brauchst du "our" oder "use vars" wenn du unter "use strict" Packagevariablen nutzen willst. Die Symboltabelle braucht ein Anfänger erst zuletzt kennenzulernen.

"our" ist genauso wie Packagevariablen eine potentielle Fehlerquelle (schau Dir mein letztes Beispiel an) und sollte deshalb am Anfang vermieden werden. Und das vars-Pragma ist als überholt gekennzeichnet und sollte daher gerade Anfängern nicht mehr angetragen werden.

Auch "global" ist etwas missverständlich.

In welchem Zusammenhang? Unter "global" verstehe ich "öffentlich", und lexikalische Variablen können im technischen Sinne nicht öffentlich sein, sondern nur privat.

folgendes Beispiel zeigt dass man mit "my" sehr wohl (File-)globale Variablen deklarieren kann, wenn der Gültigkeitsbereich/Scope auch das ganze File umfasst (hier $my1 und $my2).

Das ist dann aber eben nicht global im Sinne von öffentlich (nach außen sichtbar), sondern nachwievor privat. Im Lexical Scope hat ein Script keine Fenster, im Global Scope schon :)

Siechfred

--
Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.
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