Perl:fehler im array splitten

hallo,
ich habe eine datei, die folgendermassen aussieht:

1,2,3,4,5,6
11,22,33,44,55,66

(also, zwei (oder mehr) zeilen, mit jeweils sechs zahlen, die durch komma getrennt sind.)

diese datei lese ich mittels perlscript ein.
ich bekomme danach ein @abc, in dem zwei eintraege stehen. „1,2,3,4,5,6“ und „11,22,33,44,55,66“. so weit so gut.

diese ‚zeilen‘ moechte ich weiter splitten. auch kein problem.
das script (nur der entscheidene teil)dazu sieht so aus:

print „\n“;
for (@abc) {
@xyz = split(/,/,$_);
print „\n“;
for (@xyz) {
print „$_\n“;
}
print „\n“;
}
print „\n“;

nun bekomme ich als ausgabe dieses:

1
2
3
4
5
6
11
22
33
44
55
66

und da ist auch schon der haken. ich bekomme diese bloede leere zeile am anfang der tabelle nicht weg. verschiedene wege halfen nicht zur loesung.

was mache ich falsch???
gruss, stefan

Hallo,

ich vermute mal, dass er beim Einlesen der Datei irgendwie 3 Zeilen bekommt… schau Dir den teil doch noch mal genauer an. Bzw. starte das Script mal mit perl -w um Warnmeldungen vom Interpreter zu bekommen…

Gruß
Arne

hallo arne,

ich vermute mal, dass er beim Einlesen
der Datei irgendwie 3 Zeilen bekommt…

da hast du sicher recht. das war ja eigentlich auch so meine frage. aber, ich habe mir die datei noch mal angeschaut. sie besteht tatsaechlich nur aus zwei zeilen. die zweite zeile endet direkt nach der letzten zahl. komisch ist doch aber, dass die leere tabellenspalte am anfang generiert wird. das bedeutet ja, dass die for-schleife ohne einen startwert (der ja eigentlich die erste zeile sein soll) losrennt. eigenartig…

an. Bzw. starte das Script mal mit perl
-w um Warnmeldungen vom Interpreter zu
bekommen…

der hatte nichts zu meckern, bis auf sachen, die auf diesem weg eh nicht gehen konnten.

ich hab die sache jetzt modifiziert, so dass bei einem leeren ‚$_‘ ein ‚next‘ kommt und so funktioniert es wenigstens. aber die feine loesung ist das nicht grade.
vielleicht weiss ja noch jemand was.

ok und danke erstmal, stefan

hallo (schon wieder?:wink: stefan,

versuchs mal so:
foreach $dummy (@abc) {
@xy= split (/,/,$dummy);
print „“;
foreach $xyz (@xy) {
print „$xyz“;
}
print „“;
}

Ich habs zwar so nich getested aber es sollte funzen.

MfG
Ronald