Thread generelle Varablen Frage: (6 answers)
Opened by galaxy at 2006-04-12 17:33

Strat
 2006-04-12 17:54
#64785 #64785
User since
2003-08-04
5246 Artikel
ModeratorIn
[Homepage] [default_avatar]
globale variablen in perl gibt es eigentlich nicht; fast das gleiche sind jedoch packagevariablen (nicht my-variablen).

wenn du, wie es sich gehoert, mit use strict arbeitest, weist es dich unter anderem darauf hin, wenn ihm noch unbekannte variablen (mit ausnahme der Builtins wie %ENV, $a, $b, @INC, $_, @_, ... -> perlvar) unterkommen.
wenn du eine variable explizit als nicht-my-variable verwenden willst (kommt zwar aeusserst selten vor, aber doch gelegentlich), kann man auch packagevariablen deklarieren:
Code: (dl )
1
2
3
4
5
6
7
# ab perl5.6
our $GlobalVar1 = 20;

# oder der alte, immer noch gueltige weg
use vars qw($GlobalVar2 @GlobalArray);
$GlobalVar2 = 30;
@GlobalArray = (1..50);


Meiner Meinung nach sollte man "globale" Variablen nur unter folgenden Umstaenden verwenden:
1. der Wert der Variablen aendert sich nicht (z.B. bei Konfigurationen, wobei da CPAN:Readonly der oft bessere weg ist
2. das Script hat nicht mehr als 10 zeilen

fuer fast alles andere sind closures in kombination mit my-variablen der bessere weg
perl -le "s::*erlco'unaty.'.dk':e,y;*kn:ai;penmic;;print"
http://www.fabiani.net/

View full thread generelle Varablen Frage: