Einen Datensatz speichere ich wie folgt in eine Textdatei:
open(FileNr, ">$DateiName") || die "Fehler: $!";
$Datensatz = $Feld1.chr(9). $Feld2."\n";
print FileNr $Datensatz;
close FileNr;
Die Felder werden durch den Zeichenwert 9 mit chr(9) separiert.
Dann lese ich den, oder die Datensätze wie folgt:
my @Datenfelder = ();
open(FileNr, "<$DateiName") || die "Fehler: $!";
my @Datensaetze = (<FileNr>);
close(FileNr);
foreach my $Datensatz (@Datensaetze) {
@Datenfelder=split(chr(9),$Datensatz);
&Verarbeiten
}
Die Felder werden mit dem Zeichenwert 9 durch chr(9) gesplittet.
Da es sich hierbei um zwei Felder pro Zeile, bzw. Datensatz handelt steht im Feld $Datenfelder[1], also im zweiten Feld als letztes Zeichen der Zeichenwert 10 der mit ord(substr($Datenfelder[1], length($Datenfelder[1]-1), 1)) als Test von mir ausgegeben wird. Ich dachte, das Zeilenabschlusszeichen \n wird nicht mit eingelesen. Anscheinend doch?