Kai Diefenbach: Loeschen leere Zeilen (newline)

Beitrag lesen

Hallo Calobyte,

Hi!

print OUT unless /^$/m;
Ohne diesen matcht ein ^ wirklich nur den Anfang des Strings (nicht den einer Zeile innerhalb des Strings) und $ nur das Ende des Strings. Siehe perldoc perlre -> Abschnitt Description.

Sorry, *das* ist falsch, denn perldoc perlre sagt:

By default, the ^'' character is guaranteed to match only the beginning of the string, the $'' character only the end *(or before the newline at the end)*
[...]
You may, however, wish to treat a string as a multi-line buffer, such that the ^'' will match after any newline within the string, and $'' will match before any newline. At the cost of a little more overhead, you can do this by using the /m modifier on the pattern match operator
[...]

Das meint: bei /m passt $ auf jedes \n, auch mitten im String.

Vergl. auch: Regular Expressions, O'Reilly, J. Friedl S. 237 (ff)

So long

Gruss
  Kai