On 16.04.04 Andreas Richter (ar5@rcs.urz.tu-dresden.de) wrote:
Am Freitag, 16. April 2004 12:33 schrieb Hilmar Preusse:
Moin,
When ich mittels perl² ein File parsen will, definiere ich mir einfach einen Filehandler, mache dann das Teil mittels open() auf und kann mittels while() zeilenweise durchscannen. Fein. Jetzt habe ich ein File vorliegen, in dem die Zeilenenden auf DOS-Enter enden, will sagen ausschließlich auf dieses Zeichen und kein normales Enter-Zeichen (Beispiel hängt an). Dann hängt sich der Parser weg und erkennt nichts mehr. Gibts dafür eine triviale Lösung?
chomp (perldoc -f chomp) ist die Funktion, die in Perl jegliches "Newline"-Zeichen entfernt.
Erstmal danke für die Antwort. Minimalbeispiel:
#!/usr/bin/perl -w
open (BABY,"BabyTuX_color.eps"); while (<BABY>) { chomp(); print "$_\n"; } close (BABY);
Das file was rauskommt ist identisch, zu dem was reinkommt. Ich hab jetzt nochmal meine Literatur gewälzt. Es gibt den $/ ($INPUT_RECORD_SEPARATOR). Der ist lt. Literatur auf den normalen Zeilenvorschub eingestellt, als IMHO nix DOS-Enter. Folglicherweise müßte ich den Wert diese Variablen erweitern, damit chomp tut. Frage: wie?
Bei der Ausgabe müsste man dann allerdings das korrekte Zeichen ("\n") an jede Zeile wieder anhängen.
So ähnlich wie oben, vermute ich.
Hilmar, Perlanfänger