local->
erzeugt eine Variable, die im ganzen Script ihre Gültigkeit hat.Nein. es erzeugt eine lokale Kopie. Aber local sollte nicht mehr verwendet werden, steht auch im Artikel.
Lokale Kopie? Komm du willst mich fertig machen! *lol* Was soll denn das jetzt mit der Kopie? Ich denke wir sprechen über Variabeln?
Es wird in dem lokalen Block eine Kopie der Variabel angelegt und ausserhalb ist wieder die ursprüngliche vorhanden.
Ist jetzt eine mit local erzeugte oder definierte oder von mir aus auch kopierte Variable im ganzen Perlprogramm verfügbar oder nicht?
Wenn du vorher eine globale Variabel definiert hast, ja.
Ich will mein C64 zurück! Oder den Amiga 500 nehm ich auch gerne...
Das sieht man deinem Programm an. aber ich empfand damals schon eine Erweiterung für den C64 sehr Klasse, mit der man Funktional programmieren konnte (ich weiß aber nicht mehr wie das hieß - ich glaube es war aus der C'64er)
globale/lokale Variabeln sind eine riesige Erleichteurng für jeden, es ist absolut der Horror sich für jede Variabel einen neuen Namen zu überlegen, wenn das Programm eine gewisse Größe überschreitet.
Und use strict hilft enorm beim programmieren. Tippfehler bei Variabeln wie $lenght statt $length findest du sofort und nicht erst, wenn zufällig die Funktion aufgerufen wurde.
Ich kann mich dem Vorschlag stehts "my" zu verwenden, nicht anschließen.
Komisch warum machen das dann alle so?
Vielleicht schreiben die gerne mehr Code als erforderlich? *fleißig?*
Oder noch besser - einen Spruch den ich hier im Forum vor Jahren mal aufgeschnappt habe:
1 Mio. Fliegen können nicht irren - Scheiße schmeckt toll!
Nein, weil sie faul sind und ihre Zeit nicht mit der Fehlersuche verplempern wollen.
Finde es besser, daß man sich einen Variabel-Stamm zulegt, und den überall verwenden kann. Auch sollte eine Variable nur einmal vorkommen...
Das ist vielleicht bei deinem Gästebuch im jetzigen Stadium noch sinnvoll, aber irgendwann wird dieser Wunsch ein Alptraumszenarium, wenn du die 10 Variabel die z.b. eine Länge oder Höhe bezeichnet, benötigst.
PS.: Race-Conditions trifft natürlich nur zu, wenn mehrere Prozesse (so wie in meinem Gästebuch) stattfinden könnten. Ein DB-Programm, das aber nur auf einem Rechner läuft und nur von einer Person genutzt wird, bracht sich aber darüber keine Gedanken zu machen. Wenn man bei der Programmierung sauber gearbeitet hat.
Ob man es nicht braucht ist eine andere Frage, es ist aber vermutlich nicht so wichtig wie bei der CGI Programmierung und genau darüber sprechen wir hier, oder?
Struppi.