Andreas: foreach kann Inhalt eines Arrays nicht mehr verarbeiten

Beitrag lesen

Hi,

probiert mal folgendes Script "test.pl" aus:

<CUT>
#!/usr/bin/perl
@dummy=(1,2,3);
foreach(@dummy){
  &dateilesen;
}
foreach(@dummy){
  print "$_\n";
}
sub dateilesen(){
  $dummy="";
  open(FILE,"<test.pl");
  while(<FILE>){
    $dummy.=$_;
  }
  close(FILE);
}
</CUT>

Eigentlich sollte dieses Script

<CUT>
1
2
3
</CUT>

ausgeben. Aber es gibt nichts aus - warum nur!? Das Array ist während der ersten foreach-Schleife laut

<CUT>
...
print @dummy-1."\n";
...
</CUT>

nicht gelöscht worden, trotzdem kann eine weitere foreach-Schleife die Elemente von @dummy nicht mehr verarbeiten. Mein zweiter Versuch mit einer geänderten zweiten foreach-Schleife lief auch nicht besser:

<CUT>
...
foreach $dummy(@dummy){
  print "$dummy\n";
}
...
</CUT>

Seltsam, oder? Es ist übrigens egal, welche Namen ich den verwendeten Variablen gebe, es kommt immer das Selbe heraus... Hat das vielleicht irgendwas mit <FILE> zu tun?

Ciao
Andreas