Thread static variable (24 answers)
Opened by #Kein Kommentar at 2008-02-03 18:46

betterworld
 2008-02-16 02:10
#105955 #105955
User since
2003-08-21
2614 Artikel
ModeratorIn

user image
#Kein Kommentar+2008-02-15 22:35:55--
wird mit dem my $f if 0; use strict; kaltgestellt?

Hmm, wenn ich so drueber nachdenke, weiss ich eigentlich wirklich nicht, was es genau tut. Es scheint einiges zu tun, was my normalerweise tut (eine Variable erzeugen), anderes von dem wird aber durch das "if 0" vermieden (die Variable zu lokalisieren). Laut perlsyn ist das Ergebnis nicht definiert. (Such nach "Here be dragons".)
(Allerdings weiss ich auch nicht, wie Du jetzt auf "strict" kommst.)

Treiben wir es noch mal etwas weiter:
Code: (dl )
1
2
3
4
5
6
7
8
9
sub foo {
my $f = 40 if @_;
print ++$f, "\n";
}
foo(); # 1
foo(); # 2
foo(1); # 41
foo(); # 1
foo(); # 2

Schon etwas eigenartig. (Muss unbedingt in meinen naechsten Produktivcode.)

View full thread static variable