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