Thread static variable
(24 answers)
Opened by #Kein Kommentar at 2008-02-03 18:46 betterworld+2008-02-03 20:58:26-- Our deklariert doch nichts anderes als eine globale Packagevariable, das ist Jacke wie Hose, da kanst du auch gleich "use vars" schreiben. Das Scoping von Our regelt nur, wo die Variable benutzt werden darf (d.h. strict meckert nicht) und in welchem Namensraum sie abgespeichert wird. Mit 'package' kriegt man nämlich auch mit globalen Variablen sowas wie Closures (für Arme) hin! Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 use strict; use warnings; { package eins; our $i; package main; sub inc1{ print ++$i,"\n"; } } { package zwo; our $i=10; package main; sub inc2{ print ++$i,"\n"; } } inc1(); inc2(); inc1(); inc2(); Man hätte natürlich auch gleich sowas schreiben können: Code (perl): (dl
)
print ++$eins::i,"\n" aber obige Lösung lässt sich einfacher erweitern TMTOWTDYOG (there's more than one way to dig your own grave)
|