das die My-Variable zwar in Unter-Blocks aber nicht in Unter-Subs eindringt ist ja auch etwas was man sich klar machen muss.
Tut sie aber:
sub test
{
my $x = 2;
sub untertest {
print $x;
}
untertest();
}
Allerdings mit einer Warnung
Auch so eine nette Falle ist ja das foreach implizit die Schleifenvariable im schleifenkörper perl "local" lokalisiert... Damian Conway fordert ja deswegen auf immer sofort my zu nehmen, also
foreach my $var () {}
ohne my bricht das skript ab, wenn du strict verwendest.
Ich finde auch das:
function eventFunktion(e) {
if(!e) var e = window.event;
}
> >
> > grausam, wird aber auch nicht moniert.
>
> naja ich finds gut, das ist wieder etwas perlish :) Auch in perl kannst du auf die globale Variable zugreifen bevor du sie lokalisierst.
Davon rede ich nicht, mit geht es darum dass du e nicht mit var deklarieren musst, ich halte es sogar für falsch, da e explizit deklariert ist als Platzhalter für den Parameter, ansonsten müßte man ja immer schreiben:
~~~javascript
function F(p1, p2) {
var p1;
var p2;
}
Struppi.