Siechfred: Unklare Meldung

Beitrag lesen

Ohne Klammer kannst du die Funktion deklarieren wo du willst.
leider nicht!
die Funktion schon.
Warum? Offensichtlich doch nicht ganz am Anfang des scripts noch vor der Variablendeklaration, wie Du nachstehend schreibst.

Struppi meinte, dass Du die Funktion auch nach ihrem Aufruf notieren kannst - abgesehen von den Variablendeklarationen, das Thema ist denke ich klar geworden. Im Übrigen sind Konstrukte der Art

my $var = 'foo';  
foo();  
  
sub foo {  
  print uc $var;  
}

schlechter Stil. Besser wäre, auch unter Prototype-Bedingungen:

sub foo($) {  
  return uc shift;  
}  
  
my $var = 'foo';  
print foo($var);

Wenn du globale (bzw. in dem Falle globale lexikalische) Variabeln verwenden möchtest, ja.
Jetzt bringst Du mich ins Schleudern! Von globalen lexikalischen Variablen habe ich in den Unterlagen nichts gefunden.

In Deinem Beispiel ist $v1 scriptglobal, darauf wollte Struppi hinaus. Du solltest lexikalische Variablen in dem Kontext deklarieren, in dem Du sie benötigst (siehe mein kleines Beispiel oben), alles andere ist eine potentielle Fehlerquelle.

Siechfred

--
Wir vom Moderatorenteam haben keinerlei Humor, von dem wir wüssten.
0 54

Unklare Meldung

Thomas
  • perl
  1. 0
    Struppi
  2. 0
    Patrick Andrieu
    1. 0
      Thomas
      1. 0
        Horst
        1. 0
          Thomas
          1. 0
            Struppi
            1. 0
              Horst
        2. 0
          Manuel B.
      2. 0
        Patrick Andrieu
      3. 0
        Daniel Thoma
        1. 0
          Thomas
          1. 0
            Patrick Andrieu
            1. 0
              Thomas
              1. 0
                Struppi
                1. 0
                  Patrick Andrieu
                2. 0
                  Thomas
                  1. 0
                    Struppi
                3. 0
                  Thomas
        2. 0
          Thomas nochmal
          1. 0
            Daniel Thoma
  3. 0
    Thomas
    1. 0
      Struppi
      1. 0
        Thomas
        1. 0
          Struppi
          1. 0
            Thomas
            1. 0
              Struppi
              1. 0
                Thomas
                1. 0
                  Struppi
                2. 0
                  Daniel Thoma
            2. 0
              Siechfred
              1. 0
                Thomas
                1. 0
                  Siechfred
                2. 0
                  Struppi
                  1. 0
                    Thomas
                    1. 0
                      Struppi
                    2. 0
                      Siechfred
                      1. 0
                        Thomas
                        1. 0
                          Kurt
                          1. 0
                            Thomas
                            1. 0
                              Kurt
                              1. 0

                                Kurzversion

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

                                        Klare Funktionsdefinitionen in Perl

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