Halihallo zusammen
$br =~ s/\r\n/<br>/g;
nee, was ist denn, wenn da nur '\r' drin steht bzw. '\n\r'?
Dann triffst Du das nicht.
\n\r ist kein "offizieller" Abschluss für ein Zeilenende.
$br =~ s/\r|\n/<br>/g;
Damit wird aber \r\n zu <br><br> ersetzt. (\r\n|\r|\n) würde Windows-, Mac- und Unix-Zeilenumbrüche ersetzen. Die Reihenfolge der Alternativen ist ebenso wichtig, (\r|\n|\r\n) würde zuviele <br> ausgeben.
\n ist System-/Implementationsabhängig! (\n kann \015, \012 oder gar \015\012 bedeuten)
=>
$br =~ s/\015\012|\015|\012/<br />/g;
funktioniert überrall.
Eine neue Zeile wird durch CR, LF oder CRLF eingeführt (oder besser beendet).
CR = \015
LF = \012
wenn man's genau nimmt. \r und \n sind _immer_ mit Vorsicht zu geniessen. Ich könnte mir jedoch vorstellen, dass deine Lösung auf allen Systemen/Impl. funktioniert, aber "exakt/treffend" ist es dennoch nicht :-)
Viele Grüsse
Philipp