Forum: PC-Programmierung Perl: Gültigkeitsbereiche von Variablen - Hä?


von Anfänger (Gast)


Lesenswert?

Hallo!

Ich quäle mich gerade durch "Programming Perl" 
(http://www.amazon.de/dp/0596004923/) ... Die Kapitel 2, 3 und 4 sind 
echt anstrengend...

Was mir nicht in den Kopf will ist die Sache mit der Gültigkeit von 
Variablen. Ich habe jetzt zig Tutorials gelesen und verstehe überhaupt 
nichts mehr.

my our local state lexical scope dynamic scope HÄ???

Kennt jemand eine gute Seite wo das mit C verglichen wird oder kann es 
jemand in einfachen Worten erklären? Wozu brauche ich z.B. our wenn doch 
my genauso funktioniert? Wo ist der Unterschied zwischen lexical und 
dynamic scope? Und überhaupt warum ist der ganze Kram so kompliziert?

mfg, ein durchdrehender Anfänger...

von Peter II (Gast)


Lesenswert?

http://de.wikibooks.org/wiki/Perl-Programmierung:_G%C3%BCltigkeitsbereich_von_Variablen

also ich verwende immer my und das ist das genauso wie ein C.

von (prx) A. K. (prx)


Lesenswert?

Anfänger schrieb:
> Und überhaupt warum ist der ganze Kram so kompliziert?

Aus historischen Gründen gibt es in Perl zwei verschiedene Ansätze für 
den Gültigkeitsbereich von Variablennamen. Wie Perl überhaupt eine 
Sammlung kumulativer Entwicklungen ist.

Wenn du eine saubere Sprache ohne solche Fisematentchen willst, dann 
vermeide Perl.

von Yalu X. (yalu) (Moderator)


Lesenswert?

Hier werden ähnliche Fragen beantwortet:

  http://perldoc.perl.org/perlfaq7.html

A. K. schrieb:
> Wenn du eine saubere Sprache ohne solche Fisematentchen willst, dann
> vermeide Perl.

Vielleicht ist das einer der Gründe, warum Perl so langsam etwas aus der
Mode kommt:

  http://www.tiobe.com/index.php/paperinfo/tpci/Perl.html

;-)

von Anfänger (Gast)


Lesenswert?

Erstmal Danke für die Antworten.

Peter II schrieb:
> 
http://de.wikibooks.org/wiki/Perl-Programmierung:_G%C3%BCltigkeitsbereich_von_Variablen
Das kenne ich schon.

> also ich verwende immer my und das ist das genauso wie ein C.
Ich will es halt einmal richtig verstehen...

A. K. schrieb:
> Aus historischen Gründen gibt es in Perl zwei verschiedene Ansätze für
> den Gültigkeitsbereich von Variablennamen. Wie Perl überhaupt eine
> Sammlung kumulativer Entwicklungen ist.
Einige Sachen an Perl gefallen mir sehr gut, aber dieser Variablenzirkus 
will nicht in meinen Kopf.

Yalu X. schrieb:
> Hier werden ähnliche Fragen beantwortet:
>
>   http://perldoc.perl.org/perlfaq7.html
Das hat mir schon mal weitergeholfen.

Also aktuell verstehe ich es so:

globale Variable (innerhalb der gesamten Datei und aller Funktionen 
gültig): my außerhalb eines Blocks (lexikal)
lokale Variable: my innerhalb eines Blocks (lexikal)
einer globalen Variable temporär einen neuen Wert zuweisen: local. 
Dieser Wert ist in aufgerufenen Funktionen sichtbar! Dies geschieht zur 
Laufzeit (<--was auch immer das heissen mag). (dynamic)
persistente Variable innerhalb eines Blocks: state

Stimmt das soweit?
Was es mit our auf sich hat habe ich trotz 
http://perldoc.perl.org/functions/our.html noch nicht wirklich 
verstanden. :-(

to be continued (morgen)...

von Daniel (Gast)


Lesenswert?


Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.