Ist aber @lines wirklich leer, liegt der Fehler wohl woanders. Dann solltest Du vielleicht noch etwas mehr vom Source posten. @headers und $columns werden naemlich nirgendwo initialisiert.
Hallo Calocybe,
Ich habe es gründlich durchgetestet, der Array wird auf jeden Fall in diesem Block leer:
split lines into arrays
$l=0;
foreach $line (@lines) {
chomp($line);
$i=0;
for ($i=0;$i<$columns;$i++) {
(${$headers[$i]}[$l],$line)=split(/\t/,$line,2);
}
$l++;
} # end foreach @lines
Wenn ich $test=join("<br>",@lines); genau vor dem Block einsetze, erhalte ich die komplette Datenbank, wie erwünscht. Aber wenn ich es direkt nach dem Block einsetze, dann enthält @lines nur noch leere trings.
$headers und $columns werden natürlich vorher initialisiert.
Was ich hier absolut nicht verstehe ist, daß dieser Block keinerlei Anweisung enthält, die die Elemente von @lines irgendwie verändern könnte. Eine Zuweisung zu $line in der foreach Schleife hat doch keinen Einfluss auf die Elemente.....oder?
$x=$y bewirkt ja auch nicht, das $y danach leer ist.
Gruß
Cruz