Thread Zeichenketten aus einer Datei lesen ->: und in einer anderen Datei zufügen
(13 answers)
Opened by SimplyFred at 2007-04-26 17:10
Nein, der m-Schalter für den regulären Ausdruck ist in diesem Fall überflüssig.
Es ist nämlich so: Das Muster \s passt stets auch auf Zeilenumbrüche. Die Verwendung des m-Schalters führt lediglich dazu, dass ^ und $ nicht mehr nur auf den Anfang bzw. das Ende der gesamten Zeichenkette, sondern auch auf die Position nach bzw. vor einem Zeilenumbruch passen. Es ergibt sich also folgendes Verhalten: * $line =~ s/\s*$//; löscht aus $line beliebig viele Whitespaces, inklusive Zeilenumbrüchen, die am Ende der Zeichenkette stehen. * $line =~ s/\s*$//m; löscht aus $line beliebig viele Whitespaces, die am Ende der Zeichenkette oder[1] vor dem ersten Zeilenumbruch stehen. Daher ist es in unserem Anwendungsfall egal, ob man den m-Schalter angibt, oder nicht. Eventuell ist es ohne den Schalter um ein paar Nanosekunden schneller ;-) [1] hier ist ein exklusives "oder" gemeint. When C++ is your hammer, every problem looks like your thumb.
|