Thread Arrayvariable explizit initialisieren? (5 answers)
Opened by amos at 2014-08-07 14:54

murphy
 2014-08-07 15:01
#176762 #176762
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
2014-08-07T12:54:31 amos
Kann mir jemand sagen warum folgende Funktion nur dann zuverlässig funktioniert wenn ich statt my @hiera; my @hiera=(); verwende?
[...]
Code (perl): (dl )
  my @s; @ps; @hiera=();

[...]

Die Antwort ist ganz einfach, weil die Variable überhaupt nicht my my deklariert, sondern im globalen Namensraum angelegt wurde, wie man an der relevanten Codezeile sieht. ; schließt ein Statement ab, wenn danach ein weiterer Variablenname steht, hat der mit dem my im Statement davor nichts mehr zu tun.

An dieser Stelle ist dann wohl der obligatorische Hinweis angebracht, dass das mit use strict nicht passiert wäre :-)

Übrigens: Man kann hier im Forum Code in Codetags setzen, dann wird er nicht von der Fließtextanzeige des Browsers zu Spaghetti verarbeitet ;-)
When C++ is your hammer, every problem looks like your thumb.

View full thread Arrayvariable explizit initialisieren?