Thread Python rockz! (82 answers)
Opened by pktm at 2007-06-03 17:08

sid burn
 2007-06-13 21:18
#23814 #23814
User since
2006-03-29
1520 Artikel
BenutzerIn

user image
@kristian
Ich glaube du vertust dich da gerade etwas.

in perlport wird die Portabilität von "\n" angesprochen. Wenn du "\n" in einem Perl Programm schreibst dann ersetzt Perl eben nicht nicht genau in das ASCII Zeichen 10. Sondern es hängt davon ab welches OS du nutzt.

Wenn du "Hallo, Welt!\n" auf folgenden System nutzt kommt da letztendlich folgendes heraus.

Linux, MacOSX, Unix...: "Hallo, Welt!\012"
MacOS 9 und älter: "Hallo, Welt!\015"
Windows, Dos OS/2: "Hallo, Welt!\015\012"

Um es kurz zu sagen. Ein "\n" in Perl steht für ein Logischer Zeilenumbruch. Wenn du unter Linux "\n" nutzt dann bleibt es ein "\n" unter Windows wird ein "\n" sozusagenzu einem "\r\n" und unter MacOS wird es zu einem "\r".

Diese änderung wird deswegen gemacht, damit die Perl Skripte portabler sind. Ein "Hallo, Welt!\n" erzeugt also immer ein korrektes Newline, egal ob du das Skript nun unter einem Mac OS Windows oder Linux ausführst.

Das ändert aber wie gesagt nichts daran, das MacOS für einen Zeilenumbruch "\r" nutzt und dies das ASCII Zeichen 10 nutzt, genauso wie es Linux und Windows auch tun. Auf der ebene ist da nichts vertauscht!


Wichtig ist das korrekte Zeilenende bei der Netzwerkprogrammierung und da wird auch genau auf diese Problematik mit dem "\n" etc. hingewiesen. Das aber MacOS \r anstelle von "\n" nutzt das wird da nicht erzählt, und habe ich noch nirgends gelesen.

Ich glaube du hast den perlport abschnitt falsch verstanden?\n\n

<!--EDIT|sid burn|1181755229-->
Nicht mehr aktiv. Bei Kontakt: ICQ: 404181669 E-Mail: perl@david-raab.de

View full thread Python rockz!