$xNeTworKx: verschachteltes $_ ?

Beitrag lesen

Hi,
vorweg mal folgendes Scriptschnipsel :

foreach(sort {$b <=> $a} @yearlist)   {
     print "<table style="width:700px">\n";
     print "<th><td class="statistikmiddle">gezählte Besuche im Jahr $_ </td></th>\n";

opendir(DIR,"../../cgi/statistik/$_") or die "Cant open ../../cgi/statistik/$_ : $!\n";
                while (defined(my $file = readdir DIR))   {
                    if ($file =~ /^\d\d?.txt$/)   {
                     open(FILE,"../../cgi/statistik/$_/$file") or die "Cant open ../../cgi/statistik/$_/$file : $!\n";
                     chomp(my $input = <FILE>);
                     print "<tr><td class="statistikright">$monate[$mon - 1] : </td><td> $input</td></tr>\n";
                    close FILE;
                    }
                }
                closedir DIR;
     print "</table>\n";
     }

Ich habe $_ für das Durchlaufen des ersten Arrays benutzt. Jetzt wollte ich in den tieferen Abschnitten $_ wieder benutzen, anstatt beim Öffnen des Verzeichnisses die Daten $file zuzuordnen, aber plötzlich wurde das erste $_ durch das  zweite überschrieben.
Muss ich wirklich beim Einlesen des Verzeichnisses die Daten einer Variable zuordnen, oder gibt es auch hier eine Möglichkeit, ohne eine Variable auszukommen, wenn ich $_ vorher schon benutzt habe ?
(zB while (defined(my $file = readdir DIR))  wollte ich als while (defined($_ = readdir DIR)) schreiben, aber diees $_ überschrieb das erste.)

$xNeTworKx.