Markus Thomas: Global symbol Errorlog (CGI/PERL)

Beitrag lesen

Hallo!

Aber ich dachte es ist eine lokale Variable nur in Unterprogrammen und nicht in einer Anweisung (Z.B. if oder for-Schleife!) ???

Variablen, die mit my innerhalb einer Schleife (while|for|if|unless) deklariert werden, sind lokale Variablen und gelten nur innerhalb dieser Schleife.

my var1;
sub blabla
{
    my $var2;
    if(bedingung)
    {
        my $var3;
    }
}

Hier gilt $var2 innerhalb der gesamten Subroutine, d.h. auch innerhalb der if-Schleife, ist aber eine lokale Variable. $var3 dagegen gilt nur innerhalb der if-Schleife und ist ebenfalls eine lokale Variable. $var1 ist eine globale Variable und gilt im gesamten Bereich.
Ich hoffe, es kommt langsam Licht ins Dunkel.

Gruß Markus