Thread Neu in der Perl Welt und ein paar Fragen..
(20 answers)
Opened by Ratte at 2013-07-23 19:23 2013-07-23T17:23:37 Ratte my ist erstmal da, um die variable zu deklarieren. dadurch sagt man perl, in welchem bereich diese variable sichtbar/gültig ist. mit use strict muss man eine variable auch zwingend deklarieren (ausser spezialvariablen oder packagevariablen, aber noch nicht so wichtig). die gültigkeit gilt für den block (begrenzt durch geschweifte klammern) oder maximal für die ganze datei. Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ... my $var1 = 1; # gültig in der ganzen datei { # einfacher block my $var2; # gültig bis zum passenden ende des blocks ... } # $var2-gültigkeit endet hier sub foo { my $var3; # gültig bis zum ende der subroutine print $var3; } { my $var1 = 23; # "überschreibt" äussere variable $var1 # bis zum ende des blocks } du siehst, man kann damit variablennamen für einen relativ kurzen bereich sichtbar machen, was den wartungsaufwand verringert, da man einen besseren überblick hat, wo welche variablen verwendet werden. daher jede variable in dem kleinstmöglichen bereich deklarieren. ist ausserdem für den speicherverbrauch günstiger. man kann dann auch in meheren subroutinen gleiche namen verwenden, wenn es vom sinn her passt; da gibt es dann keine konflikte. wenn man die variable ausserhalb des gültigkeitsbereiches verwendet (oder sich vertippt), dann verhindert strict das und schützt einen so vor fehlern, die man sonst erst suchen müsste. in manchen einfachen skripten gibt es aber variablen, die man im ganzen skript braucht, die werden dann eben einfach am anfang deklariert, ohne in einer schleife oder anderem block zu sein. generell würde ich dazu raten, solche variablen gering zu halten, da man dann wie gesagt besser den überblick behält. Always code as if the guy who ends up maintaining your code will be a violent psychopath who knows where you live. -- Damian Conway in "Perl Best Practices"
lesen: Wie frage ich & perlintro brian's Leitfaden für jedes Perl-Problem |