Kurt: Zusammenfassende Darstellung, Kritik willkommen!

Beitrag lesen

Hi Siechfred,

ich kann leider momentan nicht viel Zeit investieren, (jetzt wo ich denke es  begriffen zu haben ;), aber ich denke du priorisierst falsch.

Ein Anfänger sollte erst "my" und "our" begriffen haben, bevor er anfängt mehrere "package" in einem File oder "local" zu benutzen. 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.

Auch "global" ist etwas missverständlich...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). Die Unterscheidung zwischen privat und öffentlich ist m.E. die entscheidende. Die $my sind jetzt fürs File privat (!), die anderen könnte ich aber auch aus anderen Files manipulieren, weil öffentlich.

  
use strict;  
  
($\,$,)=("\n",",");# Newline und Komma bei prints  
  
use vars qw($vars1 $vars3);  
  
my $my1="my1";  
my $my3;  
  
our $our1="our1";  
our $our3;  
  
$vars1="vars1";  
  
  
  
sub print_globals {  
 print $my1,$my2,$my3;  
 print $our1,$our2,$our3;  
 print $vars1,$vars2,$vars3;  
  
}  
  
my $my2="my2";  
$my3="my3";  
  
our $our2="our2";  
$our3="our3";  
  
use vars qw($vars2);  
  
$vars2="vars2";  
$vars3="vars3";  
  
  
print_globals();  
  
# Ausgabe ohne use strict  
#: my1,,my3  
#: our1,our2,our3  
#: vars1,vars2,vars3  
  
# Ausgabe mit use strict  
# Global symbol "$my2" requires explicit package name at /tmp/tst.pl line 17.  
# Global symbol "$our2" requires explicit package name at /tmp/tst.pl line 18.  
# Global symbol "$vars2" requires explicit package name at /tmp/tst.pl line 19.  
  

Gruß
 Kurt

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