Zeichenfeld wird zum Zahlenfeld
Lib Martinez
- perl
Hallo
mein Script liest eine CSV-Datei zeilenweise und baut mit Teilen der Ausgangsdatei ein neues CSV-File auf.
Dabei wird u.a. in einer Schleife aus jeder Zeile ein String in eine Variable gelesen und an anderer Stelle wieder eingepflanzt.
Die Variable ist als Zeichen-Variable definiert. Der Inhalt, den sie beim Lesen vorfindet, kann sowohl aus Zahlen wie auch aus Zeichen bestehen.
Nun das Problem:
Wenn die Variable beim ersten Durchlauf Zahlen bekommt, scheint sie sich als Zahlen-Variable zu verstehen. Erhält sie dann bei weiteren Durchläufen Strings, so erkennt sie die offenbar nicht, jedenfalls werden aus den Strings beim Schreiben in die Zieldatei nur noch Nullen.
Gibts da einen Weg?
Danke und Gruss,
Lib
Halihallo Lib
Die Variable ist als Zeichen-Variable definiert. Der Inhalt, den sie beim Lesen vorfindet, kann sowohl aus Zahlen wie auch aus Zeichen bestehen.
Diesen Unterschied macht Perl nicht. Für Perl sind es Skalare. Wie
diese behandelt werden hängt vom Kontext ab. Also bring uns den
Kontext => Quellcode. (bitte nicht das ganze Script, sondern ein
einfaches Beispiel an dem der Fehler reproduzierbar ist).
Kleiner Tipp:
$test = 'auiuer95';
$test = $test + 5;
gibt 5, da 'auiuer95' im nummerischen Kontext 0 wird.
Divide and Conquer. Mach Debugausgaben über print und versuche das
Problem einzugrenzen; rate niemals.
Viele Grüsse
Philipp
Hallo Philipp
Diesen Unterschied macht Perl nicht. Für Perl sind es Skalare. Wie
diese behandelt werden hängt vom Kontext ab.
Bin auch grad drauf gekommen. Das Ergebnis-CSV-File ist in Ordnung.
Das Problem taucht erst auf, wenn ich es als Datenquelle in der Textverarbeitung einsetzen will. Muss also anderswo suchen.
Nichts für ungut!
Viele Grüsse
Lib
Problem gelöst:
ich hänge einfach ein Leerzeichen davor, nicht super-elegant, aber alltagstauglich.
Herzliche Grüse, Lib